Class: IntellisenseRuby::SQS_Publisher

Inherits:
Object
  • Object
show all
Defined in:
lib/intellisense-ruby/sqs_publisher.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ SQS_Publisher

Returns a new instance of SQS_Publisher.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/intellisense-ruby/sqs_publisher.rb', line 12

def initialize(options = {})

  @sqs = AWS::SQS.new(
    :access_key_id => options[:warehouse_access_key_id],
    :secret_access_key => options[:warehouse_secret_access_key])

  @sqs_queue = @sqs.queues[options[:warehouse_queue_url]]

  @logger = options[:logger]

  begin
    @sqs_queue.arn
    log_info("intellisense-ruby: SQS_Publisher created! with queue #{@sqs_queue.url}")
  rescue => ex
    log_error("intellisense-ruby: SQS_Publisher creation FAILED... messages will not be sent due to: #{ex.class.name}")
    @sqs_queue = nil
  end

end

Instance Attribute Details

#sqs_queueObject

Returns the value of attribute sqs_queue.



10
11
12
# File 'lib/intellisense-ruby/sqs_publisher.rb', line 10

def sqs_queue
  @sqs_queue
end

Instance Method Details

#send_message(message = {}) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/intellisense-ruby/sqs_publisher.rb', line 32

def send_message(message = {})

  if @sqs_queue.nil?
      log_error("intellisense-ruby: SENSOR FAILED to send message to SQS: #{message}")
      return false
  end

  begin
    val = message.to_s
    msg = @sqs_queue.send_message(val)
    log_info("intellisense-ruby: SQS_Publisher - Sent message: #{msg.id}")
    return true
  rescue => ex
    log_error("intellisense-ruby: SQS_Publisher - FAILED to send messages due to: #{ex.class.name}")
    return false
  end
end