123456789_123456789_123456789_123456789_123456789_

Class: ActiveJob::QueueAdapters::BackburnerAdapter

Relationships & Source Files
Namespace Children
Classes:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: ActiveJob::QueueAdapters::AbstractAdapter
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

Instance Attribute Summary

Instance Method Summary

Instance Method Details

#check_adapter

[ GitHub ]

  
# 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)

This method is for internal use only.
[ GitHub ]

  
# 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)

This method is for internal use only.
[ GitHub ]

  
# 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