class ActiveJob::QueueAdapters::DispatchRiderAdapter

Adds support for DispatchRider to ActiveJob.

Public Instance Methods

enqueue(job) click to toggle source

@param [ActiveJob::Base] job

# File lib/activejob/queue_adapters/dispatch_rider_adapter.rb, line 6
def enqueue(job)
  publisher.publish **job_details_for(job)
end
enqueue_at(job, scheduled_at) click to toggle source

@param [ActiveJob::Base] job @param [Float] scheduled_at - float representing time (blame AJ)

# File lib/activejob/queue_adapters/dispatch_rider_adapter.rb, line 12
def enqueue_at(job, scheduled_at)
  scheduled_job_details = job_details_for(job).merge(scheduled_at: Time.at(scheduled_at))

  ::DispatchRider::ScheduledJob.create! **scheduled_job_details
end

Private Instance Methods

job_details_for(job) click to toggle source
# File lib/activejob/queue_adapters/dispatch_rider_adapter.rb, line 24
def job_details_for(job)
  {
    destinations: Array(job.queue_name),
    message: {
      subject: job.class.name.underscore,
      body: job.serialize.merge(guid: job.job_id)
    }
  }
end
publisher() click to toggle source
# File lib/activejob/queue_adapters/dispatch_rider_adapter.rb, line 20
def publisher
  @publisher ||= ::DispatchRider::Publisher.new
end