Module: Shoryuken::Util

Included in:
CLI, Fetcher, Launcher, Manager, Middleware::Server::Timing, Processor
Defined in:
lib/shoryuken/util.rb

Instance Method Summary collapse

Instance Method Details

#elapsed(started_at) ⇒ Object



15
16
17
18
# File 'lib/shoryuken/util.rb', line 15

def elapsed(started_at)
  # elapsed in ms
  (Time.now - started_at) * 1000
end

#loggerObject



11
12
13
# File 'lib/shoryuken/util.rb', line 11

def logger
  Shoryuken.logger
end

#unparse_queues(queues) ⇒ Object



20
21
22
23
24
25
# File 'lib/shoryuken/util.rb', line 20

def unparse_queues(queues)
  queues.inject({}) do |queue_and_weights, name|
    queue_and_weights[name] = queue_and_weights[name].to_i + 1
    queue_and_weights
  end.to_a
end

#watchdog(last_words) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/shoryuken/util.rb', line 3

def watchdog(last_words)
  yield
rescue => ex
  logger.error last_words
  logger.error ex
  logger.error ex.backtrace.join("\n")
end

#worker_name(worker_class, sqs_msg, body = nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/shoryuken/util.rb', line 27

def worker_name(worker_class, sqs_msg, body = nil)
  if defined?(::ActiveJob) \
      && !sqs_msg.is_a?(Array) \
      && sqs_msg.message_attributes \
      && sqs_msg.message_attributes['shoryuken_class'] \
      && sqs_msg.message_attributes['shoryuken_class'][:string_value] == ActiveJob::QueueAdapters::ShoryukenAdapter::JobWrapper.to_s

    "ActiveJob/#{body['job_class'].constantize}"
  else
    worker_class.to_s
  end
end