Skip to content

Commit a021975

Browse files
committed
Set successfully_enqueued for jobs enqueued in batch and return enqueued count
This is necessary so that the log subscriber doesn't crash. I had missed this pull request rails/rails#47844, merged after the original feature was added to Active Job.
1 parent ff454e7 commit a021975

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

app/models/solid_queue/job.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@ def enqueue_all(active_jobs)
1515
prepare_all_for_execution(jobs).tap do |enqueued_jobs|
1616
enqueued_jobs.each do |enqueued_job|
1717
active_jobs_by_job_id[enqueued_job.active_job_id].provider_job_id = enqueued_job.id
18+
active_jobs_by_job_id[enqueued_job.active_job_id].successfully_enqueued = true
1819
end
1920
end
2021
end
22+
23+
active_jobs.count(&:successfully_enqueued?)
2124
end
2225

2326
def enqueue(active_job, scheduled_at: Time.current)

test/models/solid_queue/job_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ class NonOverlappingGroupedJob2 < NonOverlappingJob
122122

123123
jobs = SolidQueue::Job.last(9)
124124
assert_equal active_jobs.map(&:provider_job_id).sort, jobs.pluck(:id).sort
125+
assert active_jobs.all?(&:successfully_enqueued?)
125126
end
126127

127128
test "block jobs when concurrency limits are reached" do

0 commit comments

Comments
 (0)