Class: Shoryuken::Middleware::Server::AutoExtendVisibility::MessageVisibilityExtender
- Inherits:
-
Object
- Object
- Shoryuken::Middleware::Server::AutoExtendVisibility::MessageVisibilityExtender
- Includes:
- Util
- Defined in:
- lib/shoryuken/middleware/server/auto_extend_visibility.rb
Instance Method Summary collapse
Methods included from Util
#elapsed, #fire_event, #logger, #unparse_queues, #worker_name
Instance Method Details
#auto_extend(worker, queue, sqs_msg, body) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/shoryuken/middleware/server/auto_extend_visibility.rb', line 26 def auto_extend(worker, queue, sqs_msg, body) queue_visibility_timeout = Shoryuken::Client.queues(queue).visibility_timeout Concurrent::TimerTask.new(execution_interval: queue_visibility_timeout - EXTEND_UPFRONT_SECONDS) do begin logger.debug do "Extending message #{worker_name(worker.class, sqs_msg, body)}/#{queue}/#{sqs_msg.} " \ "visibility timeout by #{queue_visibility_timeout}s." end sqs_msg.change_visibility(visibility_timeout: queue_visibility_timeout) rescue => e logger.error do 'Could not auto extend the message ' \ "#{worker_name(worker.class, sqs_msg, body)}/#{queue}/#{sqs_msg.} " \ "visibility timeout. Error: #{e.}" end end end end |