class ActiveJob::QueueAdapters::SidekiqPublisherAdapter

To use SidekiqPublisher set the queue_adapter config to :sidekiq_publisher.

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

Constants

JOB_WRAPPER_CLASS

Public Instance Methods

enqueue(job) click to toggle source
# File lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb, line 13
def enqueue(job)
  internal_enqueue(job)
end
enqueue_at(job, timestamp) click to toggle source
# File lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb, line 17
def enqueue_at(job, timestamp)
  internal_enqueue(job, timestamp)
end

Private Instance Methods

internal_enqueue(job, timestamp = nil) click to toggle source
# File lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb, line 23
def internal_enqueue(job, timestamp = nil)
  job.provider_job_id = SidekiqPublisher::Job.generate_sidekiq_jid
  attributes = job_attributes(job)
  attributes[:run_at] = timestamp if timestamp.present?
  SidekiqPublisher::Job.create!(attributes).job_id
end
job_attributes(job) click to toggle source
# File lib/active_job/queue_adapters/sidekiq_publisher_adapter.rb, line 30
def job_attributes(job)
  {
    job_id: job.provider_job_id,
    job_class: JOB_WRAPPER_CLASS,
    wrapped: job.class.to_s,
    queue: job.queue_name,
    args: [job.serialize],
  }
end