RED-5009: Added the possibility for a callback to signal that a message should be declined/dead-lettered
This commit is contained in:
parent
be674c2915
commit
1f8114379b
@ -125,17 +125,20 @@ class QueueManager(object):
|
||||
try:
|
||||
unpacked_message_body = json.loads(body)
|
||||
|
||||
callback_result = process_message_callback(unpacked_message_body)
|
||||
should_publish_result, callback_result = process_message_callback(unpacked_message_body)
|
||||
|
||||
self.logger.info("Processed message, publishing result to result-queue")
|
||||
self._channel.basic_publish("", self._output_queue, json.dumps(callback_result).encode())
|
||||
if should_publish_result:
|
||||
self.logger.info(f"Processed message with delivery_tag {frame.delivery_tag}, "
|
||||
f"publishing result to result-queue")
|
||||
self._channel.basic_publish("", self._output_queue, json.dumps(callback_result).encode())
|
||||
|
||||
self.logger.info(
|
||||
f"Result published, acknowledging incoming message with delivery_tag {frame.delivery_tag}"
|
||||
)
|
||||
self._channel.basic_ack(frame.delivery_tag)
|
||||
self.logger.info(
|
||||
f"Result published, acknowledging incoming message with delivery_tag {frame.delivery_tag}"
|
||||
)
|
||||
self._channel.basic_ack(frame.delivery_tag)
|
||||
else:
|
||||
self.logger.info(f"Processed message with delivery_tag {frame.delivery_tag}, declining message")
|
||||
|
||||
self.logger.info(f"Message with delivery_tag {frame.delivery_tag} processed")
|
||||
except Exception as ex:
|
||||
n_attempts = _get_n_previous_attempts(properties) + 1
|
||||
self.logger.warning(f"Failed to process message, {n_attempts} attempts, error: {str(ex)}")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user