Class: Barbeque::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/barbeque/runner.rb

Overview

Part of barbeque-worker. Runner dequeues a message from MessageQueue (Amazon SQS) and dispatches it to message handler.

Instance Method Summary collapse

Constructor Details

#initialize(job_queue) ⇒ Runner

Returns a new instance of Runner.



13
14
15
# File 'lib/barbeque/runner.rb', line 13

def initialize(job_queue)
  @job_queue = job_queue
end

Instance Method Details

#runObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/barbeque/runner.rb', line 17

def run
  keep_maximum_concurrent_executions

  message = message_queue.dequeue
  return unless message

  Barbeque::ExceptionHandler.set_message_context(message.id, message.type)
  handler = MessageHandler.const_get(message.type, false)
  handler.new(message: message, message_queue: message_queue).run
end

#stopObject



28
29
30
# File 'lib/barbeque/runner.rb', line 28

def stop
  message_queue.stop!
end