Sha256: 487ff96c4b32a6d7194cd3e07371aead8da0ca271c55aad6d767c5b8d8a4ab6b

Contents?: true

Size: 971 Bytes

Versions: 2

Compression:

Stored size: 971 Bytes

Contents

module RailsPerformance
  module Gems
    class SidekiqExt

      def initialize(options=nil)
      end

      def call(worker, msg, queue)
        now    = Time.now
        record = RP::Models::SidekiqRecord.new(
          enqueued_ati: msg['enqueued_at'].to_i,
          datetimei: msg['created_at'].to_i,
          jid: msg['jid'],
          queue: queue,
          start_timei: now.to_i,
          datetime: now.strftime(RailsPerformance::FORMAT),
          worker: msg['wrapped'.freeze] || worker.class.to_s
        )
        begin
          result = yield
          record.status = "success"
          result
        rescue Exception => ex
          record.status   = "exception"
          record.message  = ex.message
          raise ex
        ensure
          # store in ms instead of seconds
          record.duration = (Time.now - now) * 1000
          record.save
          result
        end
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails_performance-1.0.0.beta2 lib/rails_performance/gems/sidekiq_ext.rb
rails_performance-1.0.0.beta1 lib/rails_performance/gems/sidekiq_ext.rb