2016-12-02 8 views
1

私たちのアプリケーションではRabbitMqが使用されています キューには数百ものメッセージが蓄積されていますが、数秒間に何も予期せずシャットダウンするためTTLが機能しません。リスナーは生きていませんでした。メッセージを未実装から準備完了にプッシュする方法

今はビジネス上の理由からキューを空にするだけです。 未処理のメッセージを手作業で準備完了状態にプッシュしたい。

ありますか?

ありがとうございます!準備にunack'dからのメッセージを移動するための2つの方法があります

答えて

1

1)あなたの消費者からのメッセージをACKは

2)がオープンそれらを保持している消費者をシャットダウン

オプション#1は実際にはオプションではありません。メッセージがunack'dに詰まると、それは通常、消費者がメッセージのトラックを失ってもうそれを確認できないためです。

これは通常、#2を残します。以前にそのキューに接続されていたすべてのコンシューマをシャットダウンする必要があります。メッセージがunackされ、消費者が落ちると、RMQはメッセージを準備完了状態に戻します。

コンシューマをシャットダウンして再起動すると、メッセージがunack'd状態に戻り、コンシューマにエラーの原因を突き止め、コードを修正してから再起動する必要があります。

+1

そこには3番目の方法がありますか? – user3123372

関連する問題