Class: Scripterator::ScriptRedis
- Inherits:
-
Object
- Object
- Scripterator::ScriptRedis
- Defined in:
- lib/scripterator/script_redis.rb
Constant Summary collapse
- DEFAULT_EXPIRATION =
3 months
3 * 30 * 24 * 60 * 60
Instance Method Summary collapse
- #already_run_for?(id) ⇒ Boolean
- #checked_ids ⇒ Object
- #expire_redis_sets ⇒ Object
- #failed_ids ⇒ Object
-
#initialize(script_description, options = {}) ⇒ ScriptRedis
constructor
A new instance of ScriptRedis.
- #mark_as_failed_for(id) ⇒ Object
- #mark_as_run_for(id) ⇒ Object
- #script_key(set_name) ⇒ Object
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, = {}) @key_prefix = "one_timer_script:#{script_description.downcase.split.join('_')}" @redis_expiration = [:redis_expiration] || DEFAULT_EXPIRATION end |
Instance Method Details
#already_run_for?(id) ⇒ 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_ids ⇒ Object
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_sets ⇒ Object
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_ids ⇒ Object
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 |