Method: Pheme::QueuePoller#poll

Defined in:
lib/pheme/queue_poller.rb

#pollObject

rubocop:disable Metrics/AbcSize



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/pheme/queue_poller.rb', line 56

def poll
  time_start = log_polling_start
  queue_poller.poll(poller_configuration) do |queue_message|
    @messages_received += 1
    Pheme.logger.tagged(queue_message.message_id) do
      content = parse_body(queue_message)
       = (queue_message)
      message_attributes = parse_message_attributes(queue_message)
      with_optional_connection_pool_block { handle(content, , message_attributes) }
      queue_poller.delete_message(queue_message)
      log_delete(queue_message)
      @messages_processed += 1
    rescue SignalException
      throw :stop_polling
    rescue StandardError => e
      Pheme.logger.error(e)
      Pheme.capture_exception(e, "#{self.class} failed to process message", { message: content })
    end
  end
  log_polling_end(time_start)
end