Class: SimpleWorker::EventServer
- Inherits:
-
Object
- Object
- SimpleWorker::EventServer
- Includes:
- Observable, RedisSupport
- Defined in:
- lib/simpleworker/event_server.rb
Instance Attribute Summary
Attributes included from RedisSupport
Instance Method Summary collapse
-
#initialize(redis, namespace, jobid) ⇒ EventServer
constructor
A new instance of EventServer.
- #pull_events ⇒ Object
Constructor Details
#initialize(redis, namespace, jobid) ⇒ EventServer
Returns a new instance of EventServer.
6 7 8 9 10 11 |
# File 'lib/simpleworker/event_server.rb', line 6 def initialize(redis, namespace, jobid) @redis = redis @namespace = namespace @jobid = jobid load_lua_scripts end |
Instance Method Details
#pull_events ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# 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 |