module SQS

Private Class Methods

sqs() click to toggle source
# File lib/sqs_cli/sqs.rb, line 38
def self.sqs
  @sqs ||= Aws::SQS::Client.new
end

Public Instance Methods

all_queues() click to toggle source
# File lib/sqs_cli/sqs.rb, line 6
def all_queues
  sqs.list_queues.queue_urls
end
delete_message_batch(queue_url, batch) click to toggle source
# File lib/sqs_cli/sqs.rb, line 29
def delete_message_batch(queue_url, batch)
  entries = batch.map do |m|
    { id: m.message_id, receipt_handle: m.receipt_handle }
  end
  sqs.delete_message_batch(queue_url: queue_url, entries: entries)
end
read_message_batches(queue_url, &block) click to toggle source
# File lib/sqs_cli/sqs.rb, line 10
def read_message_batches(queue_url, &block)
  loop do
    resp = sqs.receive_message(
      queue_url: queue_url,
      max_number_of_messages: 10,
      visibility_timeout: 10
    )
    break if resp.messages.empty?
    block.call resp.messages
  end
end
send_message_batch(queue_url, batch) click to toggle source
# File lib/sqs_cli/sqs.rb, line 22
def send_message_batch(queue_url, batch)
  entries = batch.map do |msg|
    { id: msg.message_id, message_body: msg.body }
  end
  sqs.send_message_batch(queue_url: queue_url, entries: entries)
end