class BetterSqs::Message

A class that wraps Aws::Types::Message by reducing the size of the interface and adding imperative actions like deletion of self from a queue.

Attributes

queue[RW]
queue_client[RW]
sqs_message[RW]

Public Class Methods

new(queue_client: nil, queue: nil, sqs_message: nil) click to toggle source

@param queue_client [Clients::Sqs] a SQS client instance @param queue [String, Symbol] the name of the queue the message came from @param sqs_message [Types::Message] the message result object

# File lib/better_sqs/message.rb, line 10
def initialize(queue_client: nil, queue: nil, sqs_message: nil)
  @queue_client = queue_client
  @queue = queue
  @sqs_message = sqs_message
end

Public Instance Methods

==(other) click to toggle source
# File lib/better_sqs/message.rb, line 39
def ==(other)
  sqs_message == other.sqs_message && queue_client == other.queue_client && queue == other.queue
end
body()
Alias for: message_body
defer_retry() click to toggle source

Defer for sqs_message_deferral_seconds the message, before it will be made visible in sqs

# File lib/better_sqs/message.rb, line 34
def defer_retry
  BetterSqs.logger.warn "Deferring retry processing of the message for #{BetterSqs.configuration.sqs_message_deferral_seconds} in SQS."
  queue_client.defer_retry self
end
delete() click to toggle source

Delete self from the SQS queue

# File lib/better_sqs/message.rb, line 28
def delete
  BetterSqs.logger.info "Deleting message from SQS queue."
  queue_client.delete self
end
message_body() click to toggle source

@return [String] the message's body contents

# File lib/better_sqs/message.rb, line 22
def message_body
  sqs_message.body
end
Also aliased as: body
receipt_handle() click to toggle source

@return [String] the receipt handle that is used to uniquely identify this particular receipt of the message

# File lib/better_sqs/message.rb, line 17
def receipt_handle
  sqs_message.receipt_handle
end