class Barbeque::MessageQueue
Attributes
job_queue[R]
Public Class Methods
new(job_queue)
click to toggle source
# File lib/barbeque/message_queue.rb, line 9 def initialize(job_queue) @job_queue = job_queue @messages = [] @stop = false end
Public Instance Methods
delete_message(message)
click to toggle source
Remove a message from SQS queue. @param [Barbeque::Message::Base] message
# File lib/barbeque/message_queue.rb, line 33 def delete_message(message) client.delete_message( queue_url: @job_queue.queue_url, receipt_handle: message.receipt_handle, ) end
dequeue()
click to toggle source
Receive a message from SQS queue. @return [Barbeque::Message::Base]
# File lib/barbeque/message_queue.rb, line 17 def dequeue loop do return nil if @stop message = receive_message if message if message.valid? return message else delete_message(message) end end end end
stop!()
click to toggle source
# File lib/barbeque/message_queue.rb, line 40 def stop! @stop = true end
Private Instance Methods
client()
click to toggle source
# File lib/barbeque/message_queue.rb, line 57 def client @client ||= Aws::SQS::Client.new end
receive_message()
click to toggle source
# File lib/barbeque/message_queue.rb, line 46 def receive_message result = client.receive_message( queue_url: @job_queue.queue_url, wait_time_seconds: Barbeque.config.sqs_receive_message_wait_time, max_number_of_messages: 1, ) if result.messages[0] Barbeque::Message.parse(result.messages[0]) end end