Class: AWSSQS

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash_sqs/awssqs.rb

Overview

Create a SQS endpoint.

Instance Method Summary collapse

Constructor Details

#initialize(buffer_size = SettingsProvider::MAX_BUFFER_SIZE) ⇒ AWSSQS

Params buffer_size => number of messages to send per call to SQS



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/logstash_sqs/awssqs.rb', line 6

def initialize(buffer_size=SettingsProvider::MAX_BUFFER_SIZE)
  @buffer  = []
  @buffer_size = buffer_size > SettingsProvider::MAX_BUFFER_SIZE ? SettingsProvider::MAX_BUFFER_SIZE : buffer_size

  credentials = SettingsProvider.get_credentials

  @client = AWS::SQS.new(
    :access_key_id => credentials['access_key'],
    :secret_access_key => credentials['secret_key']
  )

  @queue = @client.queues.entries.first
end

Instance Method Details

#add_message(message) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/logstash_sqs/awssqs.rb', line 23

def add_message(message)
  begin
    @buffer <<  message
    if (@buffer.size >= @buffer_size)
      @queue.batch_send(*@buffer)
      @buffer.clear
    end
  rescue AWS::SQS::Errors::BatchSendError => exception
    DaemonSpawn::Base.log_file << "Could not send the message(s)"
    DaemonSpawn::Base.log_file << exception.failures
  end  
end