Class: ActiveJob::QueueAdapters::FaktoryAdapter
- Inherits:
-
Object
- Object
- ActiveJob::QueueAdapters::FaktoryAdapter
- Defined in:
- lib/active_job/queue_adapters/faktory_adapter.rb
Overview
Faktory adapter for Active Job
To use Faktory set the queue_adapter config to :faktory.
Rails.application.config.active_job.queue_adapter = :faktory
Defined Under Namespace
Classes: JobWrapper
Instance Method Summary collapse
-
#enqueue(job) ⇒ Object
:nodoc:.
-
#enqueue_at(job, timestamp) ⇒ Object
:nodoc:.
Instance Method Details
#enqueue(job) ⇒ Object
:nodoc:
13 14 15 |
# File 'lib/active_job/queue_adapters/faktory_adapter.rb', line 13 def enqueue(job) #:nodoc: enqueue_at(job, nil) end |
#enqueue_at(job, timestamp) ⇒ Object
:nodoc:
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/active_job/queue_adapters/faktory_adapter.rb', line 17 def enqueue_at(job, ) #:nodoc: jid = SecureRandom.hex(12) job.provider_job_id = jid hash = { "jid" => jid, "jobtype" => JobWrapper.to_s, "custom" => { "wrapped" => job.class.to_s, }, "queue" => job.queue_name, "args" => [ job.serialize ], } opts = job..dup hash["at"] = Time.at().utc.to_datetime.rfc3339(9) if if opts.size > 0 hash["retry"] = opts.delete("retry") if opts.has_key?("retry") hash["custom"] = opts.merge(hash["custom"]) end pool = Thread.current[:faktory_via_pool] || Faktory.server_pool Faktory.client_middleware.invoke(hash, pool) do pool.with do |c| c.push(hash) end end end |