From 49e444d1f63f43802e138cff7527e9823e02c069 Mon Sep 17 00:00:00 2001 From: Thorsten Eckel Date: Thu, 4 Jan 2018 15:36:20 +0100 Subject: [PATCH] Added Delayed::Jobs plugin to reset Settings before each job execution to prevent loading of obsolete Setting values from cache. --- .../delayed_jobs_settings_reset.rb | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 config/initializers/delayed_jobs_settings_reset.rb diff --git a/config/initializers/delayed_jobs_settings_reset.rb b/config/initializers/delayed_jobs_settings_reset.rb new file mode 100644 index 000000000..d018098cc --- /dev/null +++ b/config/initializers/delayed_jobs_settings_reset.rb @@ -0,0 +1,20 @@ +require 'delayed_job' + +class ResetSettingsPlugin < Delayed::Plugin + + callbacks do |lifecycle| + lifecycle.before(:invoke_job) do |*_args| + + Rails.logger.debug 'Resetting Settings before Job execution' + + # reload all settings before starting a job + # otherwise it might be that changed settings + # from other processes (e.g. Rails server) + # are reflected and obsolete, cached values + # are wrongfully used + Setting.reload + end + end +end + +Delayed::Worker.plugins << ResetSettingsPlugin