module Kyu::Postman

Public Class Methods

fetch_queue( queue_name, logger, error_callback ) click to toggle source
# File lib/kyu/postman.rb, line 19
def fetch_queue( queue_name, logger, error_callback )
  AWS::SQS.new.queues.named( queue_name )
rescue AWS::SQS::Errors::NonExistentQueue => err
  logger.error( Kyu.stringify_exception( err ) )
  error_callback.call( err )
  nil
end
included( base ) click to toggle source
# File lib/kyu/postman.rb, line 27
def included( base )
  base.extend( ClassMethods )
end
send_message( queue_name, msg, options={} ) click to toggle source
# File lib/kyu/postman.rb, line 8
def send_message( queue_name, msg, options={} )
  error_callback = options.fetch( :error_callback, ->( err ){} )
  logger = options.fetch( :logger, Logger.new( '/dev/null' ) )

  queue = fetch_queue( queue_name, logger, error_callback )
  return unless queue
  msg_json = msg.to_json
  logger.info( "Sending message '#{msg_json}' to '#{queue.arn}'")
  queue.send_message( msg.to_json )
end