class Liam::Consumer

Attributes

options[R]

Public Class Methods

message(*args) click to toggle source
# File lib/liam/consumer.rb, line 16
def self.message(*args)
  new(*args).send(:execute)
end
new(options: {}) click to toggle source
# File lib/liam/consumer.rb, line 12
def initialize(options: {})
  @options = options
end

Private Instance Methods

execute() click to toggle source
# File lib/liam/consumer.rb, line 24
def execute
  Liam.logger.info 'Consumer initialized'
  poller.poll(poller_options) do |messages|
    Liam.logger.info "Total received messages: #{messages.size}"
    messages.each do |message|
      Liam.logger.info message
      MessageProcessor.process(message)
    end
  end
end
poller() click to toggle source
# File lib/liam/consumer.rb, line 35
def poller
  Aws::SQS::QueuePoller.new(sqs_queue, client: Aws::SQS::Client.new(client_options))
end
poller_options() click to toggle source
# File lib/liam/consumer.rb, line 43
def poller_options
  { max_number_of_messages: options['max_message'] || options[:max_message] || 10 }
end
sqs_queue() click to toggle source
# File lib/liam/consumer.rb, line 39
def sqs_queue
  env_credentials.dig('aws', 'sqs', 'queue')
end