From e91fc18ef040f2bc8d6d0e27636108d5c03cf9f7 Mon Sep 17 00:00:00 2001 From: Martin Ortbauer Date: Tue, 4 Feb 2025 10:28:13 +0100 Subject: [PATCH] set correct scope for all jobs in a generic way also for retries --- .../initializers/active_job_select_foodcoop.rb | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/config/initializers/active_job_select_foodcoop.rb b/config/initializers/active_job_select_foodcoop.rb index 549a336d9..5e47820bd 100644 --- a/config/initializers/active_job_select_foodcoop.rb +++ b/config/initializers/active_job_select_foodcoop.rb @@ -10,13 +10,29 @@ def serialize(arguments) end def deserialize(arguments) - FoodsoftConfig.select_multifoodcoop arguments.shift + FoodsoftConfig.select_multifoodcoop arguments[0] orig_deserialize(arguments) end end end end +module ActiveJob + module Execution + # Store the original `_perform_job` method + original_perform_job = instance_method(:_perform_job) + + # Override the `_perform_job` method + define_method(:_perform_job) do + foodsoft_scope = @arguments.shift + FoodsoftConfig.select_foodcoop foodsoft_scope + + # Call the original `_perform_job` method + original_perform_job.bind(self).call + end + end +end + ActiveSupport.on_load(:after_initialize) do ActiveJob::Arguments.include FoodsoftActiveJobArguments end