class DispatchRider::QueueServices::AwsSqs::SqsReceivedMessage
Attributes
start_time[R]
total_timeout[R]
Public Class Methods
new(message, raw_item, queue)
click to toggle source
Calls superclass method
# File lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb, line 7 def initialize(message, raw_item, queue) @queue = queue @total_timeout = queue.visibility_timeout @start_time = Time.now super(message, raw_item) end
Public Instance Methods
extend_timeout(timeout)
click to toggle source
NOTE: Setting the visibility timeout resets the timeout to NOW and makes it visibility timeout this time Essentially resetting the timer on this message
# File lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb, line 16 def extend_timeout(timeout) item.visibility_timeout = timeout if timeout > 0 @total_timeout = timeout + (Time.now - start_time).to_i end end
queue_name()
click to toggle source
# File lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb, line 40 def queue_name @queue.arn.split(':').last end
receive_count()
click to toggle source
# File lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb, line 32 def receive_count @item.approximate_receive_count end
return_to_queue()
click to toggle source
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
# File lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb, line 28 def return_to_queue extend_timeout(0) end
sent_at()
click to toggle source
# File lib/dispatch-rider/queue_services/aws_sqs/sqs_received_message.rb, line 36 def sent_at @item.sent_timestamp end