class MailHandler::SQS::Client

Yields an interface to a specific sqs queue

Attributes

queues[RW]

Public Class Methods

new(config) click to toggle source
# File lib/interfaces/sqs.rb, line 19
def initialize(config)
  all_queues = ::AWS::SQS.new(
    access_key_id:     config[:access_key_id],
    secret_access_key: config[:secret_access_key],
    region:            config[:aws_region]
  ).queues

  @queues = config[:sqs_queues].map do |queue_name|
    all_queues.named queue_name
  end

  @batch_size = config[:batch_size] || 1
end

Public Instance Methods

fetch_messages() click to toggle source
# File lib/interfaces/sqs.rb, line 33
def fetch_messages
  [
    @queues.map do |queue|
      queue.receive_messages(limit: @batch_size)
    end
  ].flatten.compact
end