Module: Shoryuken::Util
- Included in:
- DefaultExceptionHandler, Fetcher, Launcher, Manager, Middleware::Server::AutoExtendVisibility, Middleware::Server::AutoExtendVisibility::MessageVisibilityExtender, Middleware::Server::ExponentialBackoffRetry, Middleware::Server::NonRetryableException, Middleware::Server::Timing, Polling::BaseStrategy, Processor, Queue, Runner
- Defined in:
- lib/shoryuken/util.rb
Overview
Utility methods shared across Shoryuken classes. Provides logging, event firing, and helper methods.
Instance Method Summary collapse
-
#elapsed(started_at) ⇒ Float
Calculates elapsed time in milliseconds.
-
#fire_event(event, reverse = false, event_options = {}) ⇒ void
Fires a lifecycle event to all registered handlers.
-
#logger ⇒ Logger
Returns the Shoryuken logger.
-
#unparse_queues(queues) ⇒ Array<Array>
Converts a queue array to a hash of queue names and weights.
-
#worker_name(worker_class, sqs_msg, body = nil) ⇒ String
Returns a display name for the worker processing a message.
Instance Method Details
#elapsed(started_at) ⇒ Float
Calculates elapsed time in milliseconds
36 37 38 39 |
# File 'lib/shoryuken/util.rb', line 36 def elapsed(started_at) # elapsed in ms (Time.now - started_at) * 1000 end |
#fire_event(event, reverse = false, event_options = {}) ⇒ void
This method returns an undefined value.
Fires a lifecycle event to all registered handlers
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/shoryuken/util.rb', line 20 def fire_event(event, reverse = false, = {}) logger.debug { "Firing '#{event}' lifecycle event" } arr = Shoryuken.[:lifecycle_events][event] arr.reverse! if reverse arr.each do |block| block.call() rescue => e logger.warn(event: event) logger.warn "#{e.class.name}: #{e.}" end end |
#logger ⇒ Logger
Returns the Shoryuken logger
10 11 12 |
# File 'lib/shoryuken/util.rb', line 10 def logger Shoryuken.logger end |
#unparse_queues(queues) ⇒ Array<Array>
Converts a queue array to a hash of queue names and weights
45 46 47 48 49 |
# File 'lib/shoryuken/util.rb', line 45 def unparse_queues(queues) queues.each_with_object({}) do |name, queue_and_weights| queue_and_weights[name] = queue_and_weights[name].to_i + 1 end.to_a end |
#worker_name(worker_class, sqs_msg, body = nil) ⇒ String
Returns a display name for the worker processing a message
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/shoryuken/util.rb', line 57 def worker_name(worker_class, sqs_msg, body = nil) if Shoryuken.active_job? \ && !sqs_msg.is_a?(Array) \ && sqs_msg. \ && sqs_msg.['shoryuken_class'] \ && sqs_msg.['shoryuken_class'][:string_value] \ == 'Shoryuken::ActiveJob::JobWrapper' \ && body "ActiveJob/#{body['job_class']}" else worker_class.to_s end end |