def handle_message(self, message, bound_handlers) -> MessageHandlingResult: """ Handle a message. """ with self.opaque.initialize(self.sqs_message_context, message): handler = None with elapsed_time(self.opaque): try: self.validate_message(message) handler = self.find_handler(message, bound_handlers) instance = MessageHandlingResult.invoke( handler=self.wrap_handler(handler), message=message, ) except Exception as error: instance = MessageHandlingResult.from_error( message=message, error=error, ) instance.elapsed_time = self.opaque["elapsed_time"] instance.log( logger=self.choose_logger(handler), opaque=self.opaque, ) instance.resolve(message) return instance
def handle_message(self, message, bound_handlers) -> MessageHandlingResult: """ Handle a message. """ with self.opaque.initialize(self.sqs_message_context, message): handler = None with elapsed_time(self.opaque): try: self.validate_message(message) handler = self.find_handler(message, bound_handlers) instance = MessageHandlingResult.invoke( handler=self.wrap_handler(handler), message=message, ) except Exception as error: instance = MessageHandlingResult.from_error( message=message, error=error, ) instance.elapsed_time = self.opaque["elapsed_time"] instance.log( logger=self.choose_logger(handler), opaque=self.opaque, ) instance.resolve(message) return instance
def handle_message(self, message, bound_handlers) -> MessageHandlingResult: """ Handle a message. """ with self.opaque.initialize(self.sqs_message_context, message): handler = None start_handle_time = time() with elapsed_time(self.opaque): try: self.validate_message(message) handler = self.find_handler(message, bound_handlers) instance = MessageHandlingResult.invoke( handler=self.wrap_handler(handler), message=message, ) except Exception as error: instance = MessageHandlingResult.from_error( message=message, error=error, ) instance.elapsed_time = self.opaque["elapsed_time"] published_time = self.opaque.get(PUBLISHED_KEY) if published_time: instance.handle_start_time = start_handle_time - float( published_time) instance.log( logger=self.choose_logger(handler), opaque=self.opaque, ) instance.error_reporting( sentry_config=self.sentry_config, opaque=self.opaque, ) instance.resolve(message) return instance