Sha256: 14e659a211ddf2166d50bde06575738afb155ee7c83a4e82ba028d95697d174b

Contents?: true

Size: 914 Bytes

Versions: 3

Compression:

Stored size: 914 Bytes

Contents

module Shoryuken
  module Middleware
    module Server
      class Timing
        include Util

        def call(worker, queue, sqs_msg, body)
          Shoryuken::Logging.with_context("#{worker_name(worker.class, sqs_msg, body)}/#{queue}/#{sqs_msg.message_id}") do
            begin
              started_at = Time.now

              logger.info "started at #{started_at}"

              yield

              total_time = elapsed(started_at)

              if (total_time / 1000.0) > (timeout = Shoryuken::Client.queues(queue).visibility_timeout)
                logger.warn "exceeded the queue visibility timeout by #{total_time - (timeout * 1000)} ms"
              end

              logger.info "completed in: #{total_time} ms"
            rescue => e
              logger.info "failed in: #{elapsed(started_at)} ms"
              raise e
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shoryuken-1.0.2 lib/shoryuken/middleware/server/timing.rb
shoryuken-1.0.1 lib/shoryuken/middleware/server/timing.rb
shoryuken-1.0.0 lib/shoryuken/middleware/server/timing.rb