diff options
author | Jacek Lachowski <jacek.lachowski@toptal.com> | 2017-10-13 14:00:20 +0200 |
---|---|---|
committer | Jacek Lachowski <jacek.lachowski@toptal.com> | 2017-11-24 10:40:16 +0100 |
commit | b1fbb6688c9e7b1909ca3ab71691822fc32daf1c (patch) | |
tree | edac843d33ef0898c133184b17f782f0f6204fa1 /activejob | |
parent | a7d7277f947dcbe31870af9f03a42d56d2b60fcc (diff) | |
download | rails-b1fbb6688c9e7b1909ca3ab71691822fc32daf1c.tar.gz rails-b1fbb6688c9e7b1909ca3ab71691822fc32daf1c.tar.bz2 rails-b1fbb6688c9e7b1909ca3ab71691822fc32daf1c.zip |
Improve DelayedJob wrapper logging
ActiveJob wraps every adapter into its own class, that is later passed
into DelayedJob which is responsible for displaying all the logs.
This change improves the logging so we can easily trace executed
jobs and see meaningful information in the logs.
Diffstat (limited to 'activejob')
-rw-r--r-- | activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb | 4 | ||||
-rw-r--r-- | activejob/test/integration/queuing_test.rb | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb b/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb index 1978179948..8eeef32b99 100644 --- a/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb +++ b/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb @@ -34,6 +34,10 @@ module ActiveJob @job_data = job_data end + def display_name + "#{job_data['job_class']} [#{job_data['job_id']}] from DelayedJob(#{job_data['queue_name']}) with arguments: #{job_data['arguments']}" + end + def perform Base.execute(job_data) end diff --git a/activejob/test/integration/queuing_test.rb b/activejob/test/integration/queuing_test.rb index 0d8aa336a6..32ef485c45 100644 --- a/activejob/test/integration/queuing_test.rb +++ b/activejob/test/integration/queuing_test.rb @@ -45,6 +45,13 @@ class QueuingTest < ActiveSupport::TestCase end end + test "should supply a wrapped class name to DelayedJob" do + skip unless adapter_is?(:delayed_job) + ::HelloJob.perform_later + job = Delayed::Job.first + assert_match(/HelloJob \[[0-9a-f-]+\] from DelayedJob\(default\) with arguments: \[\]/, job.name) + end + test "resque JobWrapper should have instance variable queue" do skip unless adapter_is?(:resque) job = ::HelloJob.set(wait: 5.seconds).perform_later |