From e6aa88526cf0959af619155659d69684b73e5702 Mon Sep 17 00:00:00 2001 From: Steve Richert Date: Thu, 22 Mar 2012 11:46:23 -0400 Subject: [PATCH] Allow Delayed::Worker configuration to be reset, allowing RSpec to pass independent of order --- lib/delayed/worker.rb | 27 ++++++++++++++++++++------- spec/spec_helper.rb | 6 ++++++ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/lib/delayed/worker.rb b/lib/delayed/worker.rb index 975ef3d9f..6f0f92084 100644 --- a/lib/delayed/worker.rb +++ b/lib/delayed/worker.rb @@ -8,14 +8,27 @@ module Delayed class Worker + DEFAULT_SLEEP_DELAY = 5 + DEFAULT_MAX_ATTEMPTS = 25 + DEFAULT_MAX_RUN_TIME = 4.hours + DEFAULT_DEFAULT_PRIORITY = 0 + DEFAULT_DELAY_JOBS = true + DEFAULT_QUEUES = [] + DEFAULT_READ_AHEAD = 5 + cattr_accessor :min_priority, :max_priority, :max_attempts, :max_run_time, :default_priority, :sleep_delay, :logger, :delay_jobs, :queues, :read_ahead - self.sleep_delay = 5 - self.max_attempts = 25 - self.max_run_time = 4.hours - self.default_priority = 0 - self.delay_jobs = true - self.queues = [] - self.read_ahead = 5 + + def self.reset + self.sleep_delay = DEFAULT_SLEEP_DELAY + self.max_attempts = DEFAULT_MAX_ATTEMPTS + self.max_run_time = DEFAULT_MAX_RUN_TIME + self.default_priority = DEFAULT_DEFAULT_PRIORITY + self.delay_jobs = DEFAULT_DELAY_JOBS + self.queues = DEFAULT_QUEUES + self.read_ahead = DEFAULT_READ_AHEAD + end + + reset # Add or remove plugins in this list before the worker is instantiated cattr_accessor :plugins diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 68870ff4b..faf4b3f0c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -46,3 +46,9 @@ def whatever(n, _); tell*n; end handle_asynchronously :whatever end + +RSpec.configure do |config| + config.after(:each) do + Delayed::Worker.reset + end +end