Sha256: b9cbb077f793fcd6bc8ead9aa8c96dcc8514012acdbfb102046c9fd7ae6ba666
Contents?: true
Size: 1014 Bytes
Versions: 1
Compression:
Stored size: 1014 Bytes
Contents
module BackgroundWorker class WorkerExecution attr_reader :worker, :method_name, :options def initialize(worker, options) fail ArgumentError, "'uid' is required to identify worker" unless options[:uid].present? @worker = worker @options = options end def call worker.perform(options) report_implicitly_successful unless completed? rescue StandardError => e log_worker_error(e) BackgroundWorker.after_exception(e) ensure log_worker_finality end private def completed? worker.state.completed end def report_implicitly_successful worker.report_successful end def log_worker_error(e) worker.log("Implicit failure: Exception: #{e}", severity: :error) worker.report_failed("An unhandled error occurred: #{e}") unless completed? end def log_worker_finality worker.log "Final state: #{worker.state.data}" worker.log "Job was #{worker.state.status}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
background_worker-0.8.1 | lib/background_worker/worker_execution.rb |