Sha256: c6654b18c8c2d4b1afe96badf6449382c669e4fcdb515c6681a36fb0f0888339
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 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 so we don't run infinitely long Resque.size(queue).times do |i| # 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 ! constantize(payload['class']).repush(*payload['args']) return new(queue, payload) end end end return nil else # drop through to original Job::Reserve if not restriction queue origin_reserve(queue) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
resque-restriction-0.3.0 | lib/resque-restriction/job.rb |
resque-restriction-0.2.2 | lib/resque-restriction/job.rb |