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