implement provider_job_id for Backburner jobs

This commit is contained in:
Cameron Matheson 2023-03-22 00:52:28 -06:00
parent ba19dbc499
commit 0cb0880b1a
2 changed files with 10 additions and 2 deletions

@ -1,3 +1,7 @@
* Set `provider_job_id` for Backburner jobs
*Cameron Matheson*
* Add `perform_all_later` to enqueue multiple jobs at once
This adds the ability to bulk enqueue jobs, without running callbacks, by

@ -16,12 +16,16 @@ module QueueAdapters
# Rails.application.config.active_job.queue_adapter = :backburner
class BackburnerAdapter
def enqueue(job) # :nodoc:
Backburner::Worker.enqueue(JobWrapper, [job.serialize], queue: job.queue_name, pri: job.priority)
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
def enqueue_at(job, timestamp) # :nodoc:
delay = timestamp - Time.current.to_f
Backburner::Worker.enqueue(JobWrapper, [job.serialize], queue: job.queue_name, pri: job.priority, delay: delay)
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
class JobWrapper # :nodoc: