Class: ActiveJob::QueueAdapters::NatsworkAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/active_job/queue_adapters/natswork_adapter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.enqueue(job) ⇒ Object



39
40
41
# File 'lib/active_job/queue_adapters/natswork_adapter.rb', line 39

def enqueue(job)
  new.enqueue(job)
end

.enqueue_at(job, timestamp) ⇒ Object



43
44
45
# File 'lib/active_job/queue_adapters/natswork_adapter.rb', line 43

def enqueue_at(job, timestamp)
  new.enqueue_at(job, timestamp)
end

Instance Method Details

#enqueue(job) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/active_job/queue_adapters/natswork_adapter.rb', line 9

def enqueue(job)
  NatsWork::Client.push(
    job_class: job.class.name,
    queue: job.queue_name || 'default',
    arguments: job.serialize,
    job_id: job.job_id,
    metadata: {
      'active_job' => true,
      'priority' => job.priority,
      'enqueued_at' => Time.now.iso8601
    }
  )
end

#enqueue_at(job, timestamp) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/active_job/queue_adapters/natswork_adapter.rb', line 23

def enqueue_at(job, timestamp)
  NatsWork::Client.perform_at(
    Time.at(timestamp),
    job_class: job.class.name,
    queue: job.queue_name || 'default',
    arguments: job.serialize,
    job_id: job.job_id,
    metadata: {
      'active_job' => true,
      'priority' => job.priority,
      'scheduled_at' => Time.at(timestamp).iso8601
    }
  )
end