diff --git a/lib/resque/integration/continuous.rb b/lib/resque/integration/continuous.rb index 2c6a10b..7e99a48 100644 --- a/lib/resque/integration/continuous.rb +++ b/lib/resque/integration/continuous.rb @@ -50,7 +50,8 @@ def after_perform_continue(*args) if continued? args = if @continued.any? if unique? - [meta_id(*args)] + @continued + meta_id = args.first # we should keep meta_id as first argument + [meta_id] + @continued else @continued end diff --git a/spec/resque/integration/continuous_spec.rb b/spec/resque/integration/continuous_spec.rb index 3e2be95..c3ae9ac 100644 --- a/spec/resque/integration/continuous_spec.rb +++ b/spec/resque/integration/continuous_spec.rb @@ -80,6 +80,20 @@ def self.execute(x, y) # clean the queue Resque.dequeue(ContinuousUniqueJobTest) end + + it 'should enqueue job with the same meta_id' do + ContinuousUniqueJobTest.enqueue(3, 1) + + job1 = Resque.reserve(ContinuousUniqueJobTest.queue) + meta1 = job1.payload['args'].first + + job1.perform + + job2 = Resque.reserve(ContinuousUniqueJobTest.queue) + meta2 = job2.payload['args'].first + + meta1.should eq meta2 + end end context 'when called without arguments' do