From 5546c9b901378e9d035c8d293a992e2ad073c43f Mon Sep 17 00:00:00 2001 From: Alex Boyd Date: Sun, 24 Jul 2022 04:51:08 -0600 Subject: [PATCH] default an explicitly passed priority of nil to the default priority --- lib/delayed/backend/base.rb | 3 ++- spec/shared/shared_backend.rb | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/delayed/backend/base.rb b/lib/delayed/backend/base.rb index 27b3451..2ed944c 100644 --- a/lib/delayed/backend/base.rb +++ b/lib/delayed/backend/base.rb @@ -31,7 +31,7 @@ module ClassMethods # :priority, :run_at, :queue, :strand, :singleton # Example: Delayed::Job.enqueue(object, priority: 0, run_at: time, queue: queue) def enqueue(object, - priority: default_priority, + priority: nil, run_at: nil, expires_at: nil, queue: Delayed::Settings.queue, @@ -44,6 +44,7 @@ def enqueue(object, raise ArgumentError, "Cannot enqueue items which do not respond to perform" end + priority ||= default_priority strand ||= singleton if Settings.infer_strand_from_singleton kwargs = Settings.default_job_options.merge(kwargs) diff --git a/spec/shared/shared_backend.rb b/spec/shared/shared_backend.rb index 71035f8..947996e 100644 --- a/spec/shared/shared_backend.rb +++ b/spec/shared/shared_backend.rb @@ -99,6 +99,16 @@ def no_op_callback(_); end Delayed::Job.default_priority = 0 end + it "uses the default priority when a priority of nil is explicitly specified" do + Delayed::Job.default_priority = 0 + @job = Delayed::Job.enqueue SimpleJob.new, priority: nil + expect(@job.priority).to be 0 + Delayed::Job.default_priority = 10 + @job = Delayed::Job.enqueue SimpleJob.new, priority: nil + expect(@job.priority).to be 10 + Delayed::Job.default_priority = 0 + end + it "is able to set run_at when enqueuing items" do later = Delayed::Job.db_time_now + 5.minutes @job = Delayed::Job.enqueue SimpleJob.new, priority: 5, run_at: later