class AWSSQS
Create a SQS endpoint.
Public Class Methods
new(buffer_size=SettingsProvider::MAX_BUFFER_SIZE)
click to toggle source
Params
buffer_size => number of messages to send per call to SQS
# 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
Public Instance Methods
add_message(message)
click to toggle source
Adds a message to this endpoint
# 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