From bed91502aa55977db8420cf2e082647fc09e4725 Mon Sep 17 00:00:00 2001 From: Jon de Andres Date: Wed, 13 Apr 2016 19:20:39 +0200 Subject: [PATCH] Add delayed_job async handler --- lib/rollbar/configuration.rb | 6 ++++++ lib/rollbar/delay/delayed_job.rb | 15 +++++++++++++++ spec/rollbar/delay/delayed_job_spec.rb | 20 ++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 lib/rollbar/delay/delayed_job.rb create mode 100644 spec/rollbar/delay/delayed_job_spec.rb diff --git a/lib/rollbar/configuration.rb b/lib/rollbar/configuration.rb index 93f8ed3d..1fa9e468 100644 --- a/lib/rollbar/configuration.rb +++ b/lib/rollbar/configuration.rb @@ -118,6 +118,12 @@ def initialize_copy(orig) end end + def use_delayed_job + require 'rollbar/delay/delayed_job' + @use_async = true + @async_handler = Rollbar::Delay::DelayedJob + end + def use_sidekiq(options = {}) require 'rollbar/delay/sidekiq' if defined?(Sidekiq) @use_async = true diff --git a/lib/rollbar/delay/delayed_job.rb b/lib/rollbar/delay/delayed_job.rb new file mode 100644 index 00000000..4460d0eb --- /dev/null +++ b/lib/rollbar/delay/delayed_job.rb @@ -0,0 +1,15 @@ +module Rollbar + module Delay + class DelayedJob + class << self + def call(payload) + new.delay.call(payload) + end + end + + def call(payload) + Rollbar.process_from_async_handler(payload) + end + end + end +end diff --git a/spec/rollbar/delay/delayed_job_spec.rb b/spec/rollbar/delay/delayed_job_spec.rb new file mode 100644 index 00000000..fa1ba2fc --- /dev/null +++ b/spec/rollbar/delay/delayed_job_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +require 'delayed_job' +require 'delayed/worker' +require 'rollbar/delay/delayed_job' + +describe Rollbar::Delay::DelayedJob do + before do +h Delayed::Worker.delay_jobs = false + end + + describe '.call' do + let(:payload) { {} } + it 'calls Rollbar' do + expect(Rollbar).to receive(:process_from_async_handler).with(payload) + + Rollbar::Delay::DelayedJob.call(payload) + end + end +end