Class: Scripterator::ScriptRedis

Inherits:
Object
  • Object
show all
Defined in:
lib/scripterator/script_redis.rb

Constant Summary collapse

DEFAULT_EXPIRATION =

3 months

3 * 30 * 24 * 60 * 60

Instance Method Summary collapse

Constructor Details

#initialize(script_description, options = {}) ⇒ ScriptRedis

Returns a new instance of ScriptRedis.



5
6
7
8
# File 'lib/scripterator/script_redis.rb', line 5

def initialize(script_description, options = {})
  @key_prefix = "one_timer_script:#{script_description.downcase.split.join('_')}"
  @redis_expiration = options[:redis_expiration] || DEFAULT_EXPIRATION
end

Instance Method Details

#already_run_for?(id) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/scripterator/script_redis.rb', line 18

def already_run_for?(id)
  redis.sismember script_key(:checked), id
end

#checked_idsObject



10
11
12
# File 'lib/scripterator/script_redis.rb', line 10

def checked_ids
  redis.smembers(script_key(:checked)).map &:to_i
end

#expire_redis_setsObject



22
23
24
25
26
# File 'lib/scripterator/script_redis.rb', line 22

def expire_redis_sets
  unless @redis_expiration <= 0
    %w(checked failed).each { |set| redis.expire script_key(set), @redis_expiration }
  end
end

#failed_idsObject



14
15
16
# File 'lib/scripterator/script_redis.rb', line 14

def failed_ids
  redis.smembers(script_key(:failed)).map &:to_i
end

#mark_as_failed_for(id) ⇒ Object



28
29
30
# File 'lib/scripterator/script_redis.rb', line 28

def mark_as_failed_for(id)
  redis.sadd script_key(:failed), id
end

#mark_as_run_for(id) ⇒ Object



32
33
34
# File 'lib/scripterator/script_redis.rb', line 32

def mark_as_run_for(id)
  redis.sadd script_key(:checked), id
end

#script_key(set_name) ⇒ Object



36
37
38
# File 'lib/scripterator/script_redis.rb', line 36

def script_key(set_name)
  "#{@key_prefix}:#{set_name}"
end