aboutsummaryrefslogtreecommitdiffstats
path: root/activejob
diff options
context:
space:
mode:
authorAzzurrio <just.azzurri@gmail.com>2016-07-26 23:46:03 +0200
committerAzzurrio <just.azzurri@gmail.com>2016-07-28 04:12:15 +0200
commit80e825915c7ff638f4b668a7cca1be46903cb433 (patch)
treea6cc267cad01a1d639358f3156e61cc678bd11be /activejob
parenta64d9835f11ea7919fae825bceb91e08a1480766 (diff)
downloadrails-80e825915c7ff638f4b668a7cca1be46903cb433.tar.gz
rails-80e825915c7ff638f4b668a7cca1be46903cb433.tar.bz2
rails-80e825915c7ff638f4b668a7cca1be46903cb433.zip
Fix accessing provider_job_id inside active jobs for sidekiq adapter
Diffstat (limited to 'activejob')
-rw-r--r--activejob/lib/active_job/core.rb1
-rw-r--r--activejob/lib/active_job/queue_adapters/sidekiq_adapter.rb2
-rw-r--r--activejob/test/integration/queuing_test.rb9
-rw-r--r--activejob/test/jobs/provider_jid_job.rb7
4 files changed, 18 insertions, 1 deletions
diff --git a/activejob/lib/active_job/core.rb b/activejob/lib/active_job/core.rb
index f7f882c998..f0606b3834 100644
--- a/activejob/lib/active_job/core.rb
+++ b/activejob/lib/active_job/core.rb
@@ -105,6 +105,7 @@ module ActiveJob
# end
def deserialize(job_data)
self.job_id = job_data['job_id']
+ self.provider_job_id = job_data['provider_job_id']
self.queue_name = job_data['queue_name']
self.priority = job_data['priority']
self.serialized_arguments = job_data['arguments']
diff --git a/activejob/lib/active_job/queue_adapters/sidekiq_adapter.rb b/activejob/lib/active_job/queue_adapters/sidekiq_adapter.rb
index c321776bf5..3d33b3923b 100644
--- a/activejob/lib/active_job/queue_adapters/sidekiq_adapter.rb
+++ b/activejob/lib/active_job/queue_adapters/sidekiq_adapter.rb
@@ -37,7 +37,7 @@ module ActiveJob
include Sidekiq::Worker
def perform(job_data)
- Base.execute job_data
+ Base.execute job_data.merge('provider_job_id' => jid)
end
end
end
diff --git a/activejob/test/integration/queuing_test.rb b/activejob/test/integration/queuing_test.rb
index 40f27500a5..ab3de3a8b9 100644
--- a/activejob/test/integration/queuing_test.rb
+++ b/activejob/test/integration/queuing_test.rb
@@ -1,6 +1,7 @@
require 'helper'
require 'jobs/logging_job'
require 'jobs/hello_job'
+require 'jobs/provider_jid_job'
require 'active_support/core_ext/numeric/time'
class QueuingTest < ActiveSupport::TestCase
@@ -34,6 +35,14 @@ class QueuingTest < ActiveSupport::TestCase
end
end
+ test 'should access provider_job_id inside Sidekiq job' do
+ skip unless adapter_is?(:sidekiq)
+ Sidekiq::Testing.inline! do
+ job = ::ProviderJidJob.perform_later
+ assert_equal "Provider Job ID: #{job.provider_job_id}", JobBuffer.last_value
+ end
+ end
+
test 'should not run job enqueued in the future' do
begin
TestJob.set(wait: 10.minutes).perform_later @id
diff --git a/activejob/test/jobs/provider_jid_job.rb b/activejob/test/jobs/provider_jid_job.rb
new file mode 100644
index 0000000000..e4f585fa94
--- /dev/null
+++ b/activejob/test/jobs/provider_jid_job.rb
@@ -0,0 +1,7 @@
+require_relative '../support/job_buffer'
+
+class ProviderJidJob < ActiveJob::Base
+ def perform
+ JobBuffer.add("Provider Job ID: #{provider_job_id}")
+ end
+end