Python-Pikaを使用してメッセージをフェッチするように、RabbitMQ サーバーをセットアップしました。問題は、永続配信モードを有効にすると、ワーカーがメッセージの処理に失敗することです。メッセージを解放する代わりに、RabbitMQ 接続がリセットされるまでメッセージを保持します。
処理に失敗したメッセージが、同じワーカーを含む利用可能なワーカーから合理的な時間枠内で再度取得されるようにする方法はありますか?
これは私の現在のコードです
if success:
ch.basic_ack(delivery_tag=method.delivery_tag)
else:
syslog.syslog('Error (Callback) -- Failed to process payload: %s' % body)
アイデアは、メッセージを失いたくないということです。代わりに、メッセージを再発行するか、失敗した場合は再度取得することを望んでいます。メッセージがワーカーによって正常に処理されるまで、これは常に当てはまります。これは通常、ワーカーの 1 つが HTTP サーバーへの接続を開くことができない場合に発生します。