lib/liquid/health_checks.rb in liquid-ext-3.3.10 vs lib/liquid/health_checks.rb in liquid-ext-3.4.0
- old
+ new
@@ -19,30 +19,42 @@
"Result{isHealthy=#{healthy?},message=#{message.inspect},exception=#{exception.inspect}}"
end
end
@@checks = {}
+ @@callbacks = []
def self.inherited(child)
@@checks[child.name.demodulize] = child
end
+ def self.callback(cb = nil, &block)
+ @@callbacks << (cb || block)
+ end
+
def self.run
@@checks.inject({}) do |result, (name, handler)|
result[name] = handler.new.execute
result
end
end
def self.poll(interval = 5)
loop do
- @healthy = run.values.all?(&:healthy?)
sleep(interval)
+ trigger
end
end
+ def self.trigger
+ results = run
+ @@callbacks.each do |cb|
+ cb.call(results)
+ end
+ end
+
def self.healthy?
- @healthy.nil? ? run.values.all?(&:healthy?) : @healthy
+ run.values.all?(&:healthy?)
end
def execute
check
rescue => e