Class: ActiveJob::QueueAdapters::FaktoryAdapter

Inherits:
Object
  • Object
show all
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

Instance Method Details

#enqueue(job) ⇒ Object

:nodoc:



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/active_job/queue_adapters/faktory_adapter.rb', line 13

def enqueue(job) #:nodoc:
  jid = SecureRandom.hex(12)
  job.provider_job_id = jid
  # Faktory::Client does not support symbols as keys
  Faktory::Client.new.push \
    "jid"     => jid,
    "jobtype" => JobWrapper,
    "custom"  => {
      "wrapped" => job.class.to_s,
    },
    "priority" => job.priority,
    "queue"   => job.queue_name,
    "args"    => [ job.serialize ]
end

#enqueue_at(job, timestamp) ⇒ Object

:nodoc:



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/active_job/queue_adapters/faktory_adapter.rb', line 28

def enqueue_at(job, timestamp) #:nodoc:
  jid = SecureRandom.hex(12)
  job.provider_job_id = jid
  # Faktory::Client does not support symbols as keys
  Faktory::Client.new.push \
    "jid"     => jid,
    "jobtype" => JobWrapper,
    "custom"  => {
      "wrapped" => job.class.to_s
    },
    "priority" => job.priority,
    "queue"   => job.queue_name,
    "args"    => [ job.serialize ],
    "at"      => Time.at(timestamp).utc.to_datetime.rfc3339(9)
end