class SimpleWorker::EventMonitor

Attributes

expired_tasks[R]
latest_time[R]
start_time[R]

Public Class Methods

new(start_time = Time.now) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 6
def initialize(start_time = Time.now)
  @start_time = start_time
  @latest_time = start_time
  @expired_tasks = []
  @event_tracker = {}
end

Public Instance Methods

done?(remaining) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 40
def done?(remaining)
  (remaining == 0) && @event_tracker.empty?
end
on_node_start(hostname) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 17
def on_node_start(hostname)
  @event_tracker[hostname] = latest_time
end
on_node_stop(hostname) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 21
def on_node_stop(hostname)
  @event_tracker.delete(hostname)
end
on_start(jobid) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 13
def on_start(jobid)
  @jobid = jobid
end
on_task_expire(hostname, task) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 35
def on_task_expire(hostname, task)
  @expired_tasks << {:task => task, :hostname => hostname, :time => latest_time}
  @event_tracker.delete(task)
end
on_task_start(hostname, task) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 25
def on_task_start(hostname, task)
  @event_tracker[hostname] = latest_time
  @event_tracker[task] = latest_time
end
on_task_stop(hostname, task) click to toggle source
# File lib/simpleworker/event_monitor.rb, line 30
def on_task_stop(hostname, task)
  @event_tracker[hostname] = latest_time
  @event_tracker.delete(task)
end
update(meth, *args) click to toggle source
Calls superclass method SimpleWorker::AbstractListener#update
# File lib/simpleworker/event_monitor.rb, line 44
def update(meth, *args)
  @latest_time = Time.now
  super(meth, *args)
end