class SimpleWorker::EventServer
Public Class Methods
new(redis, namespace, jobid)
click to toggle source
# File lib/simpleworker/event_server.rb, line 6 def initialize(redis, namespace, jobid) @redis = redis @namespace = namespace @jobid = jobid load_lua_scripts end
Public Instance Methods
pull_events()
click to toggle source
# File lib/simpleworker/event_server.rb, line 13 def pull_events log, processing, remaining = @redis.multi do @redis.evalsha @lpopall_sha, [log_key] @redis.evalsha @expired_tasks_sha, [active_tasks_key] @redis.llen tasks_key end log.map { |str| JSON.parse(str) }.each do |event| fire(*event) end processing[0].each do |key| hostname, task = parse_active_task_key(key) fire('on_task_expire', hostname, task) end processing[1].each do |key| hostname, task = parse_active_task_key(key) fire('on_task_active', hostname, task) end remaining + processing[0].size end
Private Instance Methods
fire(*args)
click to toggle source
# File lib/simpleworker/event_server.rb, line 44 def fire(*args) changed notify_observers *args end
parse_active_task_key(str)
click to toggle source
# File lib/simpleworker/event_server.rb, line 39 def parse_active_task_key(str) hostname, *task = str.split(':')[3..-1] [hostname, task.join(':')] end