Method: BBK::App::Dispatcher#process

Defined in:
lib/bbk/app/dispatcher.rb

#process(message) ⇒ Object

process one message and sending existed results messages



142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/bbk/app/dispatcher.rb', line 142

def process(message)
  results = execute_message(message)
  if message.respond_to?(:nacked?) && message.nacked?
    logger.debug "Ignore sending results: message(#{message.headers[:message_id]}) nacked in processor"
    return
  end
  logger.debug "There are #{results.count} results to send from #{message.headers[:message_id]}..."
  ActiveSupport::Notifications.instrument 'dispatcher.process', msg: message do
    send_results(message, results).value
  end
rescue StandardError => e
  logger.error "Failed processing message: #{e.inspect}"
  # это событие устарело, вместо него надо использовать `dispatcher.process`
  ActiveSupport::Notifications.instrument 'dispatcher.exception', msg: message, exception: e
  message.nack(error: e)
  close if force_quit
end