diff --git a/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb b/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb index db24c82c..7a2ac62e 100644 --- a/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb +++ b/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb @@ -21,7 +21,7 @@ def initialize(item, redis_pool = nil) # This will mess up sidekiq stats because a new job is created def call if sidekiq_worker_class? - if worker_class.perform_in(5, *item[ARGS]) + if worker_class.set(queue: item["queue"].to_sym).perform_in(5, *item[ARGS]) reflect(:rescheduled, item) else reflect(:reschedule_failed, item) diff --git a/spec/sidekiq_unique_jobs/on_conflict/reschedule_spec.rb b/spec/sidekiq_unique_jobs/on_conflict/reschedule_spec.rb index 483ea731..493c6058 100644 --- a/spec/sidekiq_unique_jobs/on_conflict/reschedule_spec.rb +++ b/spec/sidekiq_unique_jobs/on_conflict/reschedule_spec.rb @@ -7,7 +7,8 @@ let(:item) do { "class" => worker_class, "lock_digest" => lock_digest, - "args" => [1, 2] } + "args" => [1, 2], + "queue" => "default" } end describe "#call" do @@ -19,6 +20,9 @@ context "when pushed" do before do + allow(UniqueJobOnConflictReschedule).to receive(:set) + .with(queue: :default) + .and_return(UniqueJobOnConflictReschedule) allow(UniqueJobOnConflictReschedule).to receive(:perform_in).and_call_original end @@ -39,6 +43,9 @@ context "when push fails" do before do + allow(UniqueJobOnConflictReschedule).to receive(:set) + .with(queue: :default) + .and_return(UniqueJobOnConflictReschedule) allow(UniqueJobOnConflictReschedule).to receive(:perform_in).and_return(nil) end