Class: BetterSqs::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/better_sqs/message.rb

Overview

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.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue_client: nil, queue: nil, sqs_message: nil) ⇒ Message

Returns a new instance of Message.

Parameters:

  • queue_client (Clients::Sqs) (defaults to: nil)

    a SQS client instance

  • queue (String, Symbol) (defaults to: nil)

    the name of the queue the message came from

  • sqs_message (Types::Message) (defaults to: nil)

    the message result object



10
11
12
13
14
# 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

Instance Attribute Details

#queueObject

Returns the value of attribute queue.



5
6
7
# File 'lib/better_sqs/message.rb', line 5

def queue
  @queue
end

#queue_clientObject

Returns the value of attribute queue_client.



5
6
7
# File 'lib/better_sqs/message.rb', line 5

def queue_client
  @queue_client
end

#sqs_messageObject

Returns the value of attribute sqs_message.



5
6
7
# File 'lib/better_sqs/message.rb', line 5

def sqs_message
  @sqs_message
end

Instance Method Details

#==(other) ⇒ Object



39
40
41
# File 'lib/better_sqs/message.rb', line 39

def ==(other)
  sqs_message == other.sqs_message && queue_client == other.queue_client && queue == other.queue
end

#defer_retryObject

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



34
35
36
37
# 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

#deleteObject

Delete self from the SQS queue



28
29
30
31
# File 'lib/better_sqs/message.rb', line 28

def delete
  BetterSqs.logger.info "Deleting message from SQS queue."
  queue_client.delete self
end

#message_bodyString Also known as: body

Returns the message’s body contents.

Returns:

  • (String)

    the message’s body contents



22
23
24
# File 'lib/better_sqs/message.rb', line 22

def message_body
  sqs_message.body
end

#receipt_handleString

Returns the receipt handle that is used to uniquely identify this particular receipt of the message.

Returns:

  • (String)

    the receipt handle that is used to uniquely identify this particular receipt of the message



17
18
19
# File 'lib/better_sqs/message.rb', line 17

def receipt_handle
  sqs_message.receipt_handle
end