Module: Toccatore::Queue

Included in:
UsageUpdate
Defined in:
lib/toccatore/queue.rb

Instance Method Summary collapse

Instance Method Details

#delete_message(options = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/toccatore/queue.rb', line 30

def delete_message options={}
  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 = {}) ⇒ Object



26
27
28
# File 'lib/toccatore/queue.rb', line 26

def get_message options={}
  @sqs.receive_message(queue_url: queue_url, max_number_of_messages: 1, wait_time_seconds: 1)
end

#get_total(options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/toccatore/queue.rb', line 10

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 = {}) ⇒ Object



6
7
8
# File 'lib/toccatore/queue.rb', line 6

def queue options={}
  Aws::SQS::Client.new(region: ENV['AWS_REGION'].to_s, stub_responses: false)
end

#queue_url(options = {}) ⇒ Object



45
46
47
48
# File 'lib/toccatore/queue.rb', line 45

def queue_url options={}
  queue_name = queue_name ||= "#{ENV['ENVIROMENT']}_usage"
  @sqs.get_queue_url(queue_name: queue_name).queue_url
end