class MovieMasher::SqsQueueService
reads queue from sqs
Public Class Methods
new()
click to toggle source
Calls superclass method
# File service/aws/sqs_queue.rb, line 15 def initialize @queue_url = nil super end
Public Instance Methods
__queue_url()
click to toggle source
# File service/aws/sqs_queue.rb, line 24 def __queue_url if configuration[:queue_url].to_s.empty? options = { queue_name: configuration[:queue_name] } sqs_client.get_queue_url(options).queue_url else configuration[:queue_url] end end
configure(config)
click to toggle source
# File service/aws/sqs_queue.rb, line 9 def configure(config) problem = config[:queue_url].to_s.empty? problem &&= config[:queue_name].to_s.empty? !problem end
queue_url()
click to toggle source
# File service/aws/sqs_queue.rb, line 20 def queue_url @queue_url ||= __queue_url end
receive_job()
click to toggle source
# File service/aws/sqs_queue.rb, line 33 def receive_job receive_options = { max_number_of_messages: 1, queue_url: queue_url, wait_time_seconds: configuration[:queue_wait_seconds] } message = sqs_client.receive_message(receive_options).messages.first job_hash = nil if message message_body = message.body job_hash = Hashable.resolved_hash(message_body) if job_hash[:error] job_hash = nil elsif job_hash[:id].to_s.empty? job_hash[:id] = message.message_id end sqs_client.delete_message( queue_url: queue_url, receipt_handle: message.receipt_handle ) end job_hash end