Class: ActiveJob::QueueAdapters::BackburnerAdapter

Inherits:
AbstractAdapter show all
Defined in:
activejob/lib/active_job/queue_adapters/backburner_adapter.rb

Overview

Backburner adapter for Active Job

Backburner is a beanstalkd-powered job queue that can handle a very high volume of jobs. You create background jobs and place them on multiple work queues to be processed later. Read more about Backburner here.

To use Backburner set the queue_adapter config to :backburner.

Rails.application.config.active_job.queue_adapter = :backburner

Defined Under Namespace

Classes: JobWrapper

Instance Attribute Summary

Attributes inherited from AbstractAdapter

#stopping

Instance Method Summary collapse

Methods inherited from AbstractAdapter

#stopping?

Instance Method Details

#check_adapterObject



18
19
20
21
22
23
# File 'activejob/lib/active_job/queue_adapters/backburner_adapter.rb', line 18

def check_adapter
  ActiveJob.deprecator.warn <<~MSG.squish
    The built-in `backburner` adapter is deprecated and will be removed in Rails 9.0.
    Please upgrade `backburner` gem to version 1.7 or later to use the `backburner` gem's adapter.
  MSG
end

#enqueue(job) ⇒ Object

:nodoc:



25
26
27
28
29
# File 'activejob/lib/active_job/queue_adapters/backburner_adapter.rb', line 25

def enqueue(job) # :nodoc:
  response = Backburner::Worker.enqueue(JobWrapper, [job.serialize], queue: job.queue_name, pri: job.priority)
  job.provider_job_id = response[:id] if response.is_a?(Hash)
  response
end

#enqueue_at(job, timestamp) ⇒ Object

:nodoc:



31
32
33
34
35
36
# File 'activejob/lib/active_job/queue_adapters/backburner_adapter.rb', line 31

def enqueue_at(job, timestamp) # :nodoc:
  delay = timestamp - Time.current.to_f
  response = Backburner::Worker.enqueue(JobWrapper, [job.serialize], queue: job.queue_name, pri: job.priority, delay: delay)
  job.provider_job_id = response[:id] if response.is_a?(Hash)
  response
end