class Envoi::Restore::SQSMessageHandler
Attributes
event_handler[RW]
logger[RW]
message[RW]
queue_handler[RW]
worker_thread[RW]
Public Class Methods
new(args = {})
click to toggle source
# File lib/envoi/restore/agent.rb, line 18 def initialize(args = {}) @logger = args[:logger] @queue_handler = args[:queue_handler] @message = args[:message] @event_handler = args[:event_handler] end
Public Instance Methods
change_message_visibility_timeout(visibility_timeout)
click to toggle source
# File lib/envoi/restore/agent.rb, line 46 def change_message_visibility_timeout(visibility_timeout) logger.debug { "Updating Visibility Timeout for Message #{message.message_id}..."} queue_handler.poller.change_message_visibility_timeout(message, visibility_timeout) end
delete_message()
click to toggle source
# File lib/envoi/restore/agent.rb, line 51 def delete_message logger.debug { "Deleting Message #{message.message_id}..."} queue_handler.poller.delete_message(message) end
process()
click to toggle source
# File lib/envoi/restore/agent.rb, line 25 def process msg_body_parsed = JSON.parse(message.body) event = msg_body_parsed result = nil worker_thread = Thread.new(event, @event_handler, result) do result = @event_handler.process_event(event) end visibility_timeout = 5 new_visibility_timeout = 60 while worker_thread.alive? change_message_visibility_timeout(new_visibility_timeout) sleep visibility_timeout end if result && result[:success] delete_message end end