diff --git a/lib/rollbar/delayed_job.rb b/lib/rollbar/delayed_job.rb index aa5f5f7c..803427b6 100644 --- a/lib/rollbar/delayed_job.rb +++ b/lib/rollbar/delayed_job.rb @@ -33,6 +33,12 @@ def self.wrap_worker self.wrapped = true end + def self.wrap_worker! + self.wrapped = false + + wrap_worker + end + def self.around_invoke_job(&block) ::Delayed::Worker.lifecycle.around(:invoke_job, &block) end diff --git a/spec/delayed/backend/test.rb b/spec/delayed/backend/test.rb index 581381cb..52531a9b 100644 --- a/spec/delayed/backend/test.rb +++ b/spec/delayed/backend/test.rb @@ -14,7 +14,13 @@ def self.run end def self.worker - @worker ||= ::Delayed::Worker.new + prepare_worker unless @worker + + @worker + end + + def self.prepare_worker + @worker = ::Delayed::Worker.new end class Job diff --git a/spec/rollbar/delayed_job_spec.rb b/spec/rollbar/delayed_job_spec.rb index 04d62cea..7273424b 100644 --- a/spec/rollbar/delayed_job_spec.rb +++ b/spec/rollbar/delayed_job_spec.rb @@ -1,6 +1,7 @@ require 'spec_helper' require 'delayed_job' require 'rollbar/delayed_job' +require 'delayed/backend/test' describe Rollbar::Delayed, :reconfigure_notifier => true do class FailingJob @@ -12,9 +13,10 @@ def do_job_please!(a, b) end before do - Rollbar::Delayed.wrap_worker - Delayed::Worker.backend = :test + Delayed::Backend::Test.prepare_worker + Rollbar::Delayed.wrap_worker! + Delayed::Worker.backend = :test Delayed::Backend::Test::Job.delete_all end