diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index 62b186a1..8e6046ba 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -42,6 +42,7 @@ class Job < ::ActiveRecord::Base scope :min_priority, lambda { where("priority >= ?", Worker.min_priority) if Worker.min_priority } scope :max_priority, lambda { where("priority <= ?", Worker.max_priority) if Worker.max_priority } scope :for_queues, lambda { |queues = Worker.queues| where(queue: queues) if Array(queues).any? } + scope :excluding_queues, lambda { |queues = Worker.except_queues| where.not(queue: queues) if Array(queues).any? } before_save :set_default_run_at @@ -80,6 +81,7 @@ def self.reserve(worker, max_run_time = Worker.max_run_time) .min_priority .max_priority .for_queues + .excluding_queues .by_priority reserve_with_scope(ready_scope, worker, db_time_now)