Sha256: d53b91d246418c76b36fb8ea69d5b47780443b4b90918d145f1c4ee1dd314312
Contents?: true
Size: 899 Bytes
Versions: 1
Compression:
Stored size: 899 Bytes
Contents
module Resque module One class QueueLocker PREFIX = 'resque-one'.freeze attr_reader :redis, :queue def initialize(redis, queue) @redis = redis @queue = queue end def locked?(job_info) !redis.get(key_for(job_info)).nil? end def lock(job_info) return false if locked? job_info job_key = key_for job_info redis.set job_key, job_info.id true end def unlock(job_info) redis.del key_for(job_info) end def unlock_all(klass=nil) filter = klass ? "#{queue_key}:#{klass.to_s}:*" : "#{queue_key}:*" redis.keys(filter).each do |key| redis.del key end end private def queue_key "#{PREFIX}:#{queue}" end def key_for(job_info) "#{queue_key}:#{job_info.key}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
resque-one-1.0.1 | lib/resque/one/queue_locker.rb |