Class: Shoryuken::Processor

Inherits:
Object
  • Object
show all
Includes:
Util
Defined in:
lib/shoryuken/processor.rb

Instance Method Summary collapse

Methods included from Util

#elapsed, #fire_event, #logger, #unparse_queues, #worker_name

Constructor Details

#initialize(manager) ⇒ Processor

Returns a new instance of Processor.



5
6
7
# File 'lib/shoryuken/processor.rb', line 5

def initialize(manager)
  @manager = manager
end

Instance Method Details

#process(queue, sqs_msg) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/shoryuken/processor.rb', line 9

def process(queue, sqs_msg)
  worker = Shoryuken.worker_registry.fetch_worker(queue, sqs_msg)
  body = get_body(worker.class, sqs_msg)

  worker.class.server_middleware.invoke(worker, queue, sqs_msg, body) do
    worker.perform(sqs_msg, body)
  end
rescue Exception => ex
  @manager.processor_failed(ex)
  raise
ensure
  @manager.processor_done(queue)
end