Class: RServiceBus2::MonitorAWSSQS

Inherits:
Monitor
  • Object
show all
Defined in:
lib/rservicebus2/monitor/awssqs.rb

Overview

Monitor S3 Bucket for objects

Instance Attribute Summary

Attributes inherited from Monitor

#bus

Instance Method Summary collapse

Methods inherited from Monitor

#_connect, #finished, #initialize, #reconnect, #send

Constructor Details

This class inherits a constructor from RServiceBus2::Monitor

Instance Method Details

#connect(uri) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/rservicebus2/monitor/awssqs.rb', line 9

def connect(uri)
  queue_name = uri.path.sub('/', '')

  region = uri.host

  sts_client = Aws::STS::Client.new(region: region)
   = sts_client.get_caller_identity.

  @queue_url = "https://sqs.#{region}.amazonaws.com/#{}/#{queue_name}"
  @sqs_client = Aws::SQS::Client.new(region: region)
end

#lookObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rservicebus2/monitor/awssqs.rb', line 21

def look
  response = @sqs_client.receive_message(queue_url: @queue_url, max_number_of_messages: 1)
  response.messages.each do |message|
    send(message.body, URI.parse(CGI.escape(@queue_url)))
    @sqs_client.delete_message(
      {
        queue_url: @queue_url,
        receipt_handle: message.receipt_handle
      }
    )
  end
end