7

EC2でスポットインスタンスを使用して、RabbitMQキューから消費しています。各ジョブには数秒かかり、手動の「ack」が必要です。

インスタンスが終了すると問題が発生します。AMQPコンシューマーをクリーンにシャットダウンする時間はないので、RabbitMQサーバーは、死んだコンシューマーがまだ存在していると考えています。それは彼らの仕事を再配達しません、そしてそれはまだ彼らに新しい仕事をルーティングします。

RabbitMQでゾンビコンシューマーを自動的にタイムアウトさせ、ワーカープールから削除するにはどうすればよいですか?

4

2 に答える 2

6

RabbitMQ 接続でHeartbeatプロパティを設定することをお勧めします。ハートビートが停止すると、RabbitMQ は最終的に接続を切断し、未確認のメッセージをキューに戻します。

于 2012-11-17T01:08:57.390 に答える