Sha256: fdb8774718e653ae05e4f54a18a1692747c9df8b1a88a2b045935e83cbdb27f5
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
module SimpleWorker class EventMonitor < AbstractListener attr_reader :start_time, :latest_time, :expired_tasks def initialize(start_time = Time.now) @start_time = start_time @latest_time = start_time @expired_tasks = [] @event_tracker = {} end def on_start(jobid) @jobid = jobid end def on_node_start(hostname) @event_tracker[hostname] = latest_time end def on_node_stop(hostname) @event_tracker.delete(hostname) end def on_task_start(hostname, task) @event_tracker[hostname] = latest_time @event_tracker[task] = latest_time end def on_task_stop(hostname, task) @event_tracker[hostname] = latest_time @event_tracker.delete(task) end def on_task_expire(hostname, task) @expired_tasks << {:task => task, :hostname => hostname, :time => latest_time} @event_tracker.delete(task) end def done?(remaining) (remaining == 0) && @event_tracker.empty? end def update(meth, *args) @latest_time = Time.now super(meth, *args) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
simpleworker-0.1.1 | lib/simpleworker/event_monitor.rb |
simpleworker-0.1.0 | lib/simpleworker/event_monitor.rb |