From c8c2dd26a0734b3c8d404160a3d1e92e3501d47b Mon Sep 17 00:00:00 2001 From: "Ben Sheldon [he/him]" Date: Tue, 23 Jan 2024 14:19:08 -0800 Subject: [PATCH] Use Rails executor instead of reloader when wrapping inline execution (#1225) --- app/models/good_job/batch.rb | 2 +- lib/good_job.rb | 2 +- lib/good_job/adapter.rb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/good_job/batch.rb b/app/models/good_job/batch.rb index 7dd747e38..17a635c45 100644 --- a/app/models/good_job/batch.rb +++ b/app/models/good_job/batch.rb @@ -101,7 +101,7 @@ def enqueue(active_jobs = [], **properties, &block) active_jobs = add(active_jobs, &block) - Rails.application.reloader.wrap do + Rails.application.executor.wrap do record.with_advisory_lock(function: "pg_advisory_lock") do record.update!(enqueued_at: Time.current) diff --git a/lib/good_job.rb b/lib/good_job.rb index 3b678b669..8b5cf52ee 100644 --- a/lib/good_job.rb +++ b/lib/good_job.rb @@ -250,7 +250,7 @@ def self.perform_inline(queue_string = "*", limit: nil) loop do break if limit && iteration >= limit - result = Rails.application.reloader.wrap { job_performer.next } + result = Rails.application.executor.wrap { job_performer.next } break unless result raise result.unhandled_error if result.unhandled_error diff --git a/lib/good_job/adapter.rb b/lib/good_job/adapter.rb index a1a5e54ca..8b8063066 100644 --- a/lib/good_job/adapter.rb +++ b/lib/good_job/adapter.rb @@ -49,7 +49,7 @@ def enqueue_all(active_jobs) active_jobs = Array(active_jobs) return 0 if active_jobs.empty? - Rails.application.reloader.wrap do + Rails.application.executor.wrap do current_time = Time.current executions = active_jobs.map do |active_job| GoodJob::Execution.build_for_enqueue(active_job).tap do |execution| @@ -139,7 +139,7 @@ def enqueue_at(active_job, timestamp) # job there to be enqueued using enqueue_all return if GoodJob::Bulk.capture(active_job, queue_adapter: self) - Rails.application.reloader.wrap do + Rails.application.executor.wrap do will_execute_inline = execute_inline? && (scheduled_at.nil? || scheduled_at <= Time.current) execution = GoodJob::Execution.enqueue( active_job,