class Shoryuken::Worker::InlineExecutor

Public Class Methods

perform_async(worker_class, body, options = {}) click to toggle source
# File lib/shoryuken/worker/inline_executor.rb, line 5
def perform_async(worker_class, body, options = {})
  body = JSON.dump(body) if body.is_a?(Hash)
  queue_name = options.delete(:queue) || worker_class.get_shoryuken_options['queue']

  sqs_msg = OpenStruct.new(
    body: body,
    attributes: nil,
    md5_of_body: nil,
    md5_of_message_attributes: nil,
    message_attributes: nil,
    message_id: nil,
    receipt_handle: nil,
    delete: nil,
    queue_name: queue_name
  )

  call(worker_class, sqs_msg)
end
perform_in(worker_class, _interval, body, options = {}) click to toggle source
# File lib/shoryuken/worker/inline_executor.rb, line 24
def perform_in(worker_class, _interval, body, options = {})
  worker_class.perform_async(body, options)
end

Private Class Methods

call(worker_class, sqs_msg) click to toggle source
# File lib/shoryuken/worker/inline_executor.rb, line 30
def call(worker_class, sqs_msg)
  parsed_body = BodyParser.parse(worker_class, sqs_msg)
  batch = worker_class.shoryuken_options_hash['batch']
  args = batch ? [[sqs_msg], [parsed_body]] : [sqs_msg, parsed_body]
  worker_class.new.perform(*args)
end