これらの 2 つのリンクlink1 link2をたどって、キュー内のメッセージの処理を遅らせることを計画しました。したがって、リンクで提案されているとおりです。x-dead-letter-exchangeおよびx-dead-letter-routing-key引数を使用して元のキューを宣言しました。dead-letter-queueメッセージがコンシューマーによる処理に失敗したか、ttl が発生したか、キューの長さが超過したときに、いわゆるにメッセージを発行しました。現在、dead-letter-queue同様の引数がパラメータとともに設定されていttlます。ttl超過後にメッセージを元のキューに再発行することを想定しています。しかし問題は、すべてのメッセージがドロップされていることです。
さらに、ここで落とし穴があります。失敗したメッセージを元のキューから配信不能キューに明示的に発行する場合。次に、ttl の後、メッセージを元のキューに再発行します。なぜそうなのか、どうすればそれを機能させることができますか。そのため、dead-letter-queue はメッセージをドロップするのではなく、元のキューに再発行します。を使用してRabbitMQ 3.0.0います。
direct参考までに、タイプの交換とルーティング キーの両方を作成しました。