class Rabbitek::Server::Hooks::TimeTracker
Hook to keep track of time used for processing single job
Public Instance Methods
call(consumer, message)
click to toggle source
Calls superclass method
Rabbitek::ServerHook#call
# File lib/rabbitek/server/hooks/time_tracker.rb, line 13 def call(consumer, message) log_started(consumer, message) start = current_time super ensure total_time = current_time - start log_finished(consumer, message, total_time) metrics_measure_time(consumer, total_time) end
Private Instance Methods
current_time()
click to toggle source
# File lib/rabbitek/server/hooks/time_tracker.rb, line 28 def current_time Process.clock_gettime(Process::CLOCK_MONOTONIC) end
log_finished(consumer, message, total_time)
click to toggle source
# File lib/rabbitek/server/hooks/time_tracker.rb, line 36 def log_finished(consumer, message, total_time) info( message: 'Finished job', consumer: message.delivery_info.routing_key, time: total_time, jid: consumer.jid ) end
log_started(consumer, message)
click to toggle source
# File lib/rabbitek/server/hooks/time_tracker.rb, line 32 def log_started(consumer, message) info(message: 'Starting job', consumer: message.delivery_info.routing_key, jid: consumer.jid) end
metrics_measure_time(consumer, total_time)
click to toggle source
# File lib/rabbitek/server/hooks/time_tracker.rb, line 45 def metrics_measure_time(consumer, total_time) Yabeda.rabbitek.processed_messages_runtime.measure({ consumer: consumer.class }, total_time) end