Method: MultiBackgroundJob::Adapters::Faktory.coerce_to_worker
- Defined in:
- lib/multi_background_job/adapters/faktory.rb
.coerce_to_worker(payload, **options) ⇒ MultiBackgroundJob::Worker
Coerces the raw payload into an instance of Worker
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/multi_background_job/adapters/faktory.rb', line 26 def self.coerce_to_worker(payload, **) raise(Error, 'invalid payload') unless payload.is_a?(Hash) raise(Error, 'invalid payload') unless payload['jobtype'].is_a?(String) [:retry] ||= payload['retry'] if payload.key?('retry') [:queue] ||= payload['queue'] if payload.key?('queue') MultiBackgroundJob[payload['jobtype'], **].tap do |worker| worker.with_args(*Array(payload['args'])) if payload.key?('args') worker.with_job_jid(payload['jid']) if payload.key?('jid') worker.created_at(payload['created_at']) if payload.key?('created_at') worker.enqueued_at(payload['enqueued_at']) if payload.key?('enqueued_at') worker.at(payload['at']) if payload.key?('at') worker.unique(payload['uniq']) if payload.key?('uniq') end end |