lib/resque/plugins/job.rb in resque-restriction-0.6.0 vs lib/resque/plugins/job.rb in resque-restriction-0.7.0

- old
+ new

@@ -5,22 +5,22 @@ def reserve(queue) if queue =~ /^#{Plugins::Restriction::RESTRICTION_QUEUE_PREFIX}/ # If processing the restriction queue, when poping and pushing to end, # we can't tell when we reach the original one, so just walk the length - # of the queue so we don't run infinitely long - Resque.size(queue).times do |i| + # of the queue or up to max_queue_peek so we don't run infinitely long + [Resque.size(queue), Restriction.config.max_queue_peek(queue)].compact.min.times do # For the job at the head of the queue, repush to restricition queue # if still restricted, otherwise we have a runnable job, so create it # and return payload = Resque.pop(queue) if payload if !Object.const_get(payload['class']).repush(*payload['args']) return new(queue, payload) end end end - return nil + nil else # drop through to original Job::Reserve if not restriction queue origin_reserve(queue) end end