Class: SimpleWorker::EventMonitor

Inherits:
AbstractListener show all
Defined in:
lib/simpleworker/event_monitor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractListener

#on_interrupted, #on_log, #on_stop, #on_task_active, #on_timeout

Constructor Details

#initialize(start_time = Time.now) ⇒ EventMonitor

Returns a new instance of EventMonitor.



6
7
8
9
10
11
# 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

Instance Attribute Details

#expired_tasksObject (readonly)

Returns the value of attribute expired_tasks.



4
5
6
# File 'lib/simpleworker/event_monitor.rb', line 4

def expired_tasks
  @expired_tasks
end

#latest_timeObject (readonly)

Returns the value of attribute latest_time.



4
5
6
# File 'lib/simpleworker/event_monitor.rb', line 4

def latest_time
  @latest_time
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



4
5
6
# File 'lib/simpleworker/event_monitor.rb', line 4

def start_time
  @start_time
end

Instance Method Details

#done?(remaining) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/simpleworker/event_monitor.rb', line 40

def done?(remaining)
  (remaining == 0) && @event_tracker.empty?
end

#on_node_start(hostname) ⇒ Object



17
18
19
# File 'lib/simpleworker/event_monitor.rb', line 17

def on_node_start(hostname)
  @event_tracker[hostname] = latest_time
end

#on_node_stop(hostname) ⇒ Object



21
22
23
# File 'lib/simpleworker/event_monitor.rb', line 21

def on_node_stop(hostname)
  @event_tracker.delete(hostname)
end

#on_start(jobid) ⇒ Object



13
14
15
# File 'lib/simpleworker/event_monitor.rb', line 13

def on_start(jobid)
  @jobid = jobid
end

#on_task_expire(hostname, task) ⇒ Object



35
36
37
38
# 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) ⇒ Object



25
26
27
28
# 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) ⇒ Object



30
31
32
33
# 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) ⇒ Object



44
45
46
47
# File 'lib/simpleworker/event_monitor.rb', line 44

def update(meth, *args)
  @latest_time = Time.now
  super(meth, *args)
end