Sha256: 927360a64827ffbcd4324e92f980dfb5493233e9d1734d821f958099bb1253a4
Contents?: true
Size: 797 Bytes
Versions: 4
Compression:
Stored size: 797 Bytes
Contents
class Eye::Trigger::CheckDependency < Eye::Trigger param :names, [Array], true, 5 def check(transition) check_dependency(transition.to_name) if transition.from_name == :up end private def check_dependency(to) processes = names.map do |name| Eye::Control.find_nearest_process(name, process.group_name_pure, process.app_name) end processes = processes.compact.select { |p| p.state_name != :unmonitored } return if processes.empty? processes = Eye::Utils::AliveArray.new(processes) act = case to when :down, :restarting then :restart when :stopping then :stop when :unmonitored then :unmonitor end if act processes.each do |p| p.schedule act, Eye::Reason.new(:"#{act} dependecies") end end end end
Version data entries
4 entries across 4 versions & 1 rubygems