class EventHub::Statistics
Attributes
messages_average_process_time[R]
messages_average_size[R]
messages_successful[R]
messages_unsuccessful[R]
Public Class Methods
new()
click to toggle source
# File lib/eventhub/statistics.rb, line 4 def initialize @messages_successful = 0 @messages_unsuccessful = 0 @messages_average_size = 0 @messages_average_process_time = 0 @messages_total_process_time = 0 @mutex = Mutex.new end
Public Instance Methods
failure()
click to toggle source
# File lib/eventhub/statistics.rb, line 32 def failure @mutex.lock @messages_unsuccessful += 1 ensure @mutex.unlock end
measure(size) { || ... }
click to toggle source
# File lib/eventhub/statistics.rb, line 13 def measure(size, &block) start = Time.now yield success(Time.now - start, size) rescue failure raise end
messages_total()
click to toggle source
# File lib/eventhub/statistics.rb, line 39 def messages_total messages_unsuccessful + messages_successful end
messages_total_process_time()
click to toggle source
# File lib/eventhub/statistics.rb, line 43 def messages_total_process_time messages_average_process_time * messages_successful end
messages_total_size()
click to toggle source
# File lib/eventhub/statistics.rb, line 47 def messages_total_size messages_average_size * messages_successful end
success(process_time, size)
click to toggle source
# File lib/eventhub/statistics.rb, line 22 def success(process_time, size) @mutex.lock @messages_total_process_time += process_time @messages_average_process_time = (messages_total_process_time + process_time) / (messages_successful + 1).to_f @messages_average_size = (messages_total_size + size) / (messages_successful + 1).to_f @messages_successful += 1 ensure @mutex.unlock end