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.

Constant Summary collapse

DEFAULT_QUEUE =
'default'

Instance Method Summary collapse

Constructor Details

#initialize(queue_name: ENV['BARBEQUE_QUEUE'] || DEFAULT_QUEUE) ⇒ Runner

Returns a new instance of Runner.



15
16
17
# File 'lib/barbeque/runner.rb', line 15

def initialize(queue_name: ENV['BARBEQUE_QUEUE'] || DEFAULT_QUEUE)
  @queue_name = queue_name
end

Instance Method Details

#run ⇒ Object



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

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

#stop ⇒ Object



30
31
32
# File 'lib/barbeque/runner.rb', line 30

def stop
  message_queue.stop!
end