Class: Qless::Middleware::Metriks::CountEvents

Inherits:
Module
  • Object
show all
Defined in:
lib/qless/middleware/metriks.rb

Overview

Increments a counter each time an instance of a particular job class completes.

Usage:

Qless::Worker.class_eval do

include Qless::Middleware::CountEvents.new(
  SomeJobClass => "event_name",
  SomeOtherJobClass => "some_other_event"
)

end

Instance Method Summary collapse

Constructor Details

#initialize(class_to_event_map) ⇒ CountEvents

Returns a new instance of CountEvents.



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/qless/middleware/metriks.rb', line 30

def initialize(class_to_event_map)
  module_eval do # eval the block within the module instance
    define_method :around_perform do |job|
      super(job)
      return unless job.state == 'complete'
      return unless event_name = class_to_event_map[job.klass]

      counter = ::Metriks.counter("qless.job-events.#{event_name}")
      counter.increment
    end
  end
end