alive
ドキュメントによると、デッドレターの有効期限が切れている場合は実行できません...
配信不能キューのサイクルを形成することができます。たとえば、デッドレタールーティングキーを指定せずに、キューがデフォルトの交換にデッドレターメッセージを送信すると、これが発生する可能性があります。このようなサイクルのメッセージ (つまり、同じキューに 2 回到達するメッセージ)は、サイクル全体がメッセージの期限切れによるものである場合、ドロップされます。
(私の強調)。
からのデッドレタリングalive
が拒否によるものであるテストを実行しましたが、問題なく動作します。数サイクル後、x-death
ヘッダーは次のようになります...
reason: rejected
queue: alive
time: 1419448981
exchange: req
routing-keys: alive
reason: expired
queue: dead
time: 1419448981
exchange: dlx
routing-keys: alive
reason: rejected
queue: alive
time: 1419448976
exchange: req
routing-keys: alive
reason: expired
queue: dead
time: 1419448976
exchange: dlx
routing-keys: alive
...
これをテストするために、Spring AMQP リスナーを強制的に失敗させて に設定defaultRequeueRejected
しましたfalse
。