class UniqueJob::JobHistory

Public Class Methods

new(worker_class, queueing_class, ttl) click to toggle source
# File lib/unique_job/job_history.rb, line 5
def initialize(worker_class, queueing_class, ttl)
  @key = "#{self.class}:#{queueing_class.name.split('::')[-1]}:#{worker_class}"
  @ttl = ttl
end

Private Class Methods

redis() click to toggle source
# File lib/unique_job/job_history.rb, line 43
def redis
  @redis ||= Redis.client(ENV['REDIS_HOST'])
end

Public Instance Methods

add(val) click to toggle source
# File lib/unique_job/job_history.rb, line 28
def add(val)
  redis.setex(key(val), @ttl, true)
end
delete_all() click to toggle source
# File lib/unique_job/job_history.rb, line 18
def delete_all
  redis.keys("#{@key}:*").each do |key|
    redis.del(key)
  end
end
exists?(val) click to toggle source
# File lib/unique_job/job_history.rb, line 24
def exists?(val)
  redis.exists?(key(val))
end
ttl(val = nil) click to toggle source
# File lib/unique_job/job_history.rb, line 10
def ttl(val = nil)
  if val
    redis.ttl(key(val))
  else
    @ttl
  end
end

Private Instance Methods

key(val) click to toggle source
# File lib/unique_job/job_history.rb, line 34
def key(val)
  "#{@key}:#{val}"
end
redis() click to toggle source
# File lib/unique_job/job_history.rb, line 38
def redis
  self.class.redis
end