Module: DTR::Adapter::Master
- Included in:
- Master, Monitor::AgentsMonitor
- Defined in:
- lib/dtr/shared/adapter/base.rb,
lib/dtr/shared/adapter/mortality.rb
Instance Method Summary collapse
- #do_wakeup_agents ⇒ Object
- #group_agents_should_die(group = DTR.configuration.group) ⇒ Object
- #hypnotize_agents ⇒ Object
- #with_wakeup_agents(&block) ⇒ Object
Instance Method Details
#do_wakeup_agents ⇒ Object
92 93 94 |
# File 'lib/dtr/shared/adapter/base.rb', line 92 def do_wakeup_agents yell_agents("#{Adapter::WAKEUP_MESSAGE} #{DTR.configuration.rinda_server_port} #{DTR.configuration.group}") end |
#group_agents_should_die(group = DTR.configuration.group) ⇒ Object
36 37 38 |
# File 'lib/dtr/shared/adapter/mortality.rb', line 36 def group_agents_should_die(group = DTR.configuration.group) yell_agents("#{Adapter::DEAD_MESSAGE} #{DTR.configuration.rinda_server_port} #{group}") end |
#hypnotize_agents ⇒ Object
72 73 74 |
# File 'lib/dtr/shared/adapter/base.rb', line 72 def hypnotize_agents yell_agents("#{Adapter::SLEEP_MESSAGE} #{DTR.configuration.rinda_server_port}") end |
#with_wakeup_agents(&block) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/dtr/shared/adapter/base.rb', line 76 def with_wakeup_agents(&block) heartbeat = Thread.new do loop do do_wakeup_agents sleep(DTR.configuration.master_heartbeat_interval) end end #heartbeat thread should have high priority for agent is listening heartbeat.priority = Thread.current.priority + 10 block.call ensure #kill heartbeat first, so that agents wouldn't be wakeup after hypnotized Thread.kill heartbeat rescue nil hypnotize_agents rescue nil end |