module Toccatore::Queue

Public Instance Methods

delete_message(options={}) click to toggle source
# File lib/toccatore/queue.rb, line 33
def delete_message options={}
  return 1 if options.messages.size < 1
  reponse = @sqs.delete_message({
    queue_url: queue_url,
    receipt_handle: options.messages[0][:receipt_handle]    
  })
  if reponse.successful?
    puts "Message #{options.messages[0][:receipt_handle]} deleted"
    0
  else
    puts "Could NOT delete Message #{options.messages[0][:receipt_handle]}"
    1
  end

end
get_message(options={}) click to toggle source
# File lib/toccatore/queue.rb, line 29
def get_message options={}
  @sqs.receive_message(queue_url: queue_url, max_number_of_messages: 1, wait_time_seconds: 1)
end
get_total(options={}) click to toggle source
# File lib/toccatore/queue.rb, line 13
def get_total options={}
  req = @sqs.get_queue_attributes(
    {
      queue_url: queue_url, attribute_names: 
        [
          'ApproximateNumberOfMessages', 
          'ApproximateNumberOfMessagesNotVisible'
        ]
    }
  )

  msgs_available = req.attributes['ApproximateNumberOfMessages']
  msgs_in_flight = req.attributes['ApproximateNumberOfMessagesNotVisible']
  msgs_available.to_i
end
queue(options={}) click to toggle source
# File lib/toccatore/queue.rb, line 6
def queue options={}
  puts "Queue name has not been specified" unless ENV['ENVIRONMENT'].present?
  puts "AWS_REGION has not been specified" unless ENV['AWS_REGION'].present?
  region = ENV['AWS_REGION'] ||= 'eu-west-1'
  Aws::SQS::Client.new(region: region.to_s, stub_responses: false)
end
queue_url(options={}) click to toggle source
# File lib/toccatore/queue.rb, line 49
def queue_url options={}
  options[:queue_name] ||= "#{ENV['ENVIRONMENT']}_usage" 
  queue_name = options[:queue_name] 
  # puts "Using  #{@sqs.get_queue_url(queue_name: queue_name).queue_url} queue"
  @sqs.get_queue_url(queue_name: queue_name).queue_url
end