mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
93c9534c98
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
34 lines
1.1 KiB
Ruby
34 lines
1.1 KiB
Ruby
require "backburner"
|
|
|
|
module ActiveJob
|
|
module QueueAdapters
|
|
# == 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}[https://github.com/nesquena/backburner].
|
|
#
|
|
# To use Backburner set the queue_adapter config to +:backburner+.
|
|
#
|
|
# Rails.application.config.active_job.queue_adapter = :backburner
|
|
class BackburnerAdapter
|
|
def enqueue(job) #:nodoc:
|
|
Backburner::Worker.enqueue JobWrapper, [ job.serialize ], queue: job.queue_name
|
|
end
|
|
|
|
def enqueue_at(job, timestamp) #:nodoc:
|
|
delay = timestamp - Time.current.to_f
|
|
Backburner::Worker.enqueue JobWrapper, [ job.serialize ], queue: job.queue_name, delay: delay
|
|
end
|
|
|
|
class JobWrapper #:nodoc:
|
|
class << self
|
|
def perform(job_data)
|
|
Base.execute job_data
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|