Sha256: 59591dea080dd9c5bab1a20540a2c1bc06c192872dc6e3fd0d482d2d5e667feb
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
module Resque class Job class <<self alias_method :origin_reserve, :reserve 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 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 nil else # drop through to original Job::Reserve if not restriction queue origin_reserve(queue) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
resque-restriction-0.7.0 | lib/resque/plugins/job.rb |