class Sidekiq::Cronitor::Middleware
Public Instance Methods
call(worker, message, queue) { || ... }
click to toggle source
# File lib/sidekiq/cronitor.rb, line 46 def call(worker, message, queue) ping(worker: worker, state: 'run') yield rescue => e ping(worker: worker, state: 'fail', message: e.to_s) raise e else ping(worker: worker, state: 'complete') end
Private Instance Methods
has_cronitor?(worker)
click to toggle source
# File lib/sidekiq/cronitor.rb, line 73 def has_cronitor?(worker) worker.is_a?(Sidekiq::Cronitor) && worker.respond_to?(:cronitor) && !worker.cronitor.api_key.nil? end
ping(worker:, state:, message: nil)
click to toggle source
# File lib/sidekiq/cronitor.rb, line 60 def ping(worker:, state:, message: nil) return unless has_cronitor?(worker) Sidekiq.logger.debug("[cronitor] ping: worker=#{worker.class.name} state=#{state} message=#{message}") worker.cronitor.ping(state: state) rescue Cronitor::Error => e Sidekiq.logger.error("[cronitor] error during ping: worker=#{worker.class.name} error=#{e.message}") rescue => e Sidekiq.logger.error("[cronitor] unexpected error: worker=#{worker.class.name} error=#{e.message}") Sidekiq.logger.error(e.backtrace.first) end