У меня есть RabbitMQ Server, где я извлекаю сообщения, используя Python-Pika. Проблема в том, что если у меня включен persistent delivery mode, и рабочие не смогут обработать сообщение. Вместо того, чтобы отпускать сообщение, он будет хранить его до тех пор, пока сообщение не будет сброшено до соединения RabbitMQ.Принудительно получать сообщения об ошибках, когда включен режим постоянной доставки
Есть ли способ убедиться, что сообщение, которое не удалось обработать, автоматически получает снова в разумные сроки от доступного рабочего, включая тот же самый?
Это мой текущий код
if success:
ch.basic_ack(delivery_tag=method.delivery_tag)
else:
syslog.syslog('Error (Callback) -- Failed to process payload: %s' % body)
Идея заключается в том, что я никогда не хочу потерять сообщение, вместо этого я хочу, чтобы повторно опубликовано, а точнее возобновились, если это не удалось. Это всегда должно быть так, пока сообщение не будет успешно обработано рабочим. Обычно это происходит, когда один из рабочих не может открыть соединение с HTTP-сервером.