class Sidekiq::Uniq::Status

Constants

KEY

Public Class Methods

clear(redis = nil) click to toggle source
# File lib/sidekiq/uniq/status.rb, line 36
def self.clear(redis = nil)
  Status.redis(redis) do |conn|
    keys = conn.keys "#{KEY}*"
    keys.each{ |key| conn.del(key) }
  end
end
expiration() click to toggle source
# File lib/sidekiq/uniq/status.rb, line 6
def self.expiration
  @expiration ||= 60 * 30
end
expiration=(seconds) click to toggle source
# File lib/sidekiq/uniq/status.rb, line 10
def self.expiration=(seconds)
  @expiration = seconds
end
key(msg) click to toggle source
# File lib/sidekiq/uniq/status.rb, line 14
def self.key(msg)
  KEY + ':' + Digest::MD5.hexdigest(msg['class'].to_s + ':' + msg['args'].inspect)
end
redis(redis = nil) { |conn| ... } click to toggle source
# File lib/sidekiq/uniq/status.rb, line 43
def self.redis(redis = nil)
  if redis
    redis.with do |conn|
      yield conn
    end
  else
    Sidekiq.redis do |conn|
      yield conn
    end
  end
end
running_or_enqueued(msg, redis = nil) click to toggle source
# File lib/sidekiq/uniq/status.rb, line 28
def self.running_or_enqueued(msg, redis = nil)
  status = ''
  Status.redis(redis) do |conn|
    status = conn.get(Status.key(msg)).to_s
  end
  (status === 'running' || status === 'enqueued')
end
save_status(msg, status, redis = nil) click to toggle source
# File lib/sidekiq/uniq/status.rb, line 18
def self.save_status(msg, status, redis = nil)
  Status.redis(redis) do |conn|
    key = Status.key(msg)
    conn.multi do
      conn.set key, status.to_s
      conn.expire key, Status.expiration
    end
  end
end