class ActiveHook::Server::Retry
Public Class Methods
new()
click to toggle source
# File lib/activehook/server/retry.rb, line 4 def initialize @done = false end
Public Instance Methods
shutdown()
click to toggle source
# File lib/activehook/server/retry.rb, line 20 def shutdown @done = true end
start()
click to toggle source
# File lib/activehook/server/retry.rb, line 8 def start until @done ActiveHook.redis.with do |conn| conn.watch('ah:retry') do retries = retrieve_retries(conn) update_retries(conn, retries) end end sleep 2 end end
Private Instance Methods
retrieve_retries(conn)
click to toggle source
# File lib/activehook/server/retry.rb, line 26 def retrieve_retries(conn) conn.zrangebyscore('ah:retry', 0, Time.now.to_i) end
update_retries(conn, retries)
click to toggle source
# File lib/activehook/server/retry.rb, line 30 def update_retries(conn, retries) if retries.any? conn.multi do |multi| multi.incrby('ah:total_retries', retries.count) multi.zrem('ah:retry', retries) multi.lpush('ah:queue', retries) end else conn.unwatch end end