Class: DispatchRider::QueueServices::AwsSqs::SqsReceivedMessage
- Inherits:
-
ReceivedMessage
- Object
- SimpleDelegator
- ReceivedMessage
- DispatchRider::QueueServices::AwsSqs::SqsReceivedMessage
- Defined in:
- lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb
Instance Attribute Summary collapse
-
#start_time ⇒ Object
readonly
Returns the value of attribute start_time.
-
#total_timeout ⇒ Object
readonly
Returns the value of attribute total_timeout.
Attributes inherited from ReceivedMessage
Instance Method Summary collapse
-
#extend_timeout(timeout) ⇒ Object
NOTE: Setting the visibility timeout resets the timeout to NOW and makes it visibility timeout this time Essentially resetting the timer on this message.
-
#initialize(message, raw_item, queue, queue_visibility_timeout) ⇒ SqsReceivedMessage
constructor
A new instance of SqsReceivedMessage.
- #queue_name ⇒ Object
- #receive_count ⇒ Object
-
#return_to_queue ⇒ Object
We effectively return the item to the queue by setting the visibility timeout to zero.
- #sent_at ⇒ Object
Methods inherited from ReceivedMessage
Constructor Details
#initialize(message, raw_item, queue, queue_visibility_timeout) ⇒ SqsReceivedMessage
Returns a new instance of SqsReceivedMessage.
9 10 11 12 13 14 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 9 def initialize(, raw_item, queue, queue_visibility_timeout) @queue = queue @total_timeout = queue_visibility_timeout.to_i @start_time = Time.now super(, raw_item) end |
Instance Attribute Details
#start_time ⇒ Object (readonly)
Returns the value of attribute start_time.
7 8 9 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 7 def start_time @start_time end |
#total_timeout ⇒ Object (readonly)
Returns the value of attribute total_timeout.
7 8 9 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 7 def total_timeout @total_timeout end |
Instance Method Details
#extend_timeout(timeout) ⇒ Object
NOTE: Setting the visibility timeout resets the timeout to NOW and makes it visibility timeout this time Essentially resetting the timer on this message
18 19 20 21 22 23 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 18 def extend_timeout(timeout) item.change_visibility({ visibility_timeout: timeout # required }) @total_timeout = timeout + (Time.now - start_time).to_i if timeout > 0 end |
#queue_name ⇒ Object
42 43 44 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 42 def queue_name @item.queue_arn.split(':').last end |
#receive_count ⇒ Object
34 35 36 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 34 def receive_count @item.approximate_receive_count end |
#return_to_queue ⇒ Object
We effectively return the item to the queue by setting the visibility timeout to zero. The item should become immediately visible. The next receiver will reset the visibility to something appropriate
30 31 32 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 30 def return_to_queue extend_timeout(0) end |
#sent_at ⇒ Object
38 39 40 |
# File 'lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb', line 38 def sent_at @item. end |