Sha256: 7cdcc06864eaa6286abe90252bb9b05e989aadd362a512a7d225958a0cbdba24

Contents?: true

Size: 930 Bytes

Versions: 19

Compression:

Stored size: 930 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

19 entries across 19 versions & 1 rubygems

Version Path
shoryuken-3.0.7 lib/shoryuken/middleware/server/timing.rb
shoryuken-3.0.6 lib/shoryuken/middleware/server/timing.rb
shoryuken-3.0.5 lib/shoryuken/middleware/server/timing.rb
shoryuken-3.0.4 lib/shoryuken/middleware/server/timing.rb
shoryuken-3.0.3 lib/shoryuken/middleware/server/timing.rb
shoryuken-3.0.2 lib/shoryuken/middleware/server/timing.rb
shoryuken-3.0.1 lib/shoryuken/middleware/server/timing.rb
shoryuken-3.0.0 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.1.3 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.1.2 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.1.1 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.1.0 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.0.11 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.0.4 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.0.3 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.0.2 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.0.1 lib/shoryuken/middleware/server/timing.rb
shoryuken-2.0.0 lib/shoryuken/middleware/server/timing.rb
shoryuken-1.0.3 lib/shoryuken/middleware/server/timing.rb