class SimpleMessaging::MessageQueue::SQS

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/simple_messaging/message_queue/sqs.rb, line 9
def initialize(name)
  @sqs = Aws::SQS::Client.new
  @queue_url = @sqs.create_queue(queue_name: queue_name(name.to_s)).queue_url
  @name = name
end

Public Instance Methods

delete() click to toggle source
# File lib/simple_messaging/message_queue/sqs.rb, line 31
def delete
  MessageQueue.unregister_queue(name)
  @queue.delete
end
enqueue(message) click to toggle source
# File lib/simple_messaging/message_queue/sqs.rb, line 15
def enqueue(message)
  @sqs.send_message(queue_url: @queue_url, message_body: message)
end
poll() { |body| ... } click to toggle source
# File lib/simple_messaging/message_queue/sqs.rb, line 24
def poll(&block)
  poller = Aws::SQS::QueuePoller.new(@queue_url)
  poller.poll do |message|
    yield message.body
  end
end
pop() { |messages.body| ... } click to toggle source
# File lib/simple_messaging/message_queue/sqs.rb, line 19
def pop(&block)
  response = @sqs.receive_message(queue_url: @queue_url)
  yield response.messages.first.body
end

Private Instance Methods

queue_identifier() click to toggle source
# File lib/simple_messaging/message_queue/sqs.rb, line 38
def queue_identifier
  case MessageQueue.environment
  when "development"
    prefix = (ENV["SQS_IDENTIFIER"] || `whoami`).strip
    "#{prefix}-development"
  else
    MessageQueue.environment
  end
end