Class: Message::Filters::Benchmarking

Inherits:
Object
  • Object
show all
Defined in:
lib/message/filters/benchmarking.rb

Instance Method Summary collapse

Instance Method Details

#call(filter, job, action) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/message/filters/benchmarking.rb', line 5

def call(filter, job, action)
  lambda do |msg|
    return filter.call(msg) unless action == :process

    ret = nil
    Message.log(:info) { "#{job.name}: processing one message"}
    s = Benchmark.realtime do
      ret = filter.call(msg)
    end
    Message.log(:info) { "#{job.name}: processed in #{(1000 * s).to_i}ms" }
    ret
  end
end