Class: ActiveJob::QueueAdapters::DelayedJobAdapter

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

Overview

Delayed Job adapter for Active Job

Delayed::Job (or DJ) encapsulates the common pattern of asynchronously executing longer tasks in the background. Although DJ can have many storage backends, one of the most used is based on Active Record. Read more about Delayed Job here.

To use Delayed Job, set the queue_adapter config to :delayed_job.

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

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



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

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

#enqueue(job) ⇒ Object

:nodoc:



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

def enqueue(job) # :nodoc:
  delayed_job = Delayed::Job.enqueue(JobWrapper.new(job.serialize), queue: job.queue_name, priority: job.priority)
  job.provider_job_id = delayed_job.id
  delayed_job
end

#enqueue_at(job, timestamp) ⇒ Object

:nodoc:



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

def enqueue_at(job, timestamp) # :nodoc:
  delayed_job = Delayed::Job.enqueue(JobWrapper.new(job.serialize), queue: job.queue_name, priority: job.priority, run_at: Time.at(timestamp))
  job.provider_job_id = delayed_job.id
  delayed_job
end