2016-09-15 1 views
0

SimpleMessageListenerContainer.setAfterReceivePostProcessors APIを使用してSpringAMQPに複数のMessagePostProcessorsを設定しています。これらのMessagePostProcessorsは、前述の順序で呼び出されます。SimpleMessageListenerContainer内の異なるMessagePostProcessorsの注文方法

Pseoudoコード

SimpleMessageListenerContainer container = // api returing SimpleMessageListenerContainer object 
container.setAfterReceivePostProcessors(new MessagePostProcessor[] { 
       messagePostProcessors1 , messagePostProcessors2}); 

だから、春AMQPはmessagePostProcessors1を呼ぶん順番にmessagePostProcessors2に続くかはランダムに同じことを選択していますか?

それがランダムに選択した場合、我々はmessagePostProcessors2が常にmessagePostProcessors1

答えて

1

Akshat後に呼び出される同じすなわちを注文することができます任意の方法は、順序がprocessor.Quotingここでは、文書に設定されている順序に基づいてあります。私はプロセッサの具体的な実装を見て、私はsetOrderメソッド(私が思うようにフォームインターフェイスがある)を見つける。あなたのメッセージのポストプロセッサーがそのトリックをすることを設定することがあります。

ます。public void setAfterReceivePostProcessors(MessagePostProcessor ... afterReceivePostProcessors) はチャンネル#basicGet(直後に呼び出されるMessagePostProcessorを設定し

)と 変換が行われる任意のメッセージの前に。 解凍などの操作に使用される可能性があります。 PriorityOrder、Orderおよび最後に順序付けられていないプロセッサが順番に呼び出されます。

+0

あなたは、(オーダーされた)ポストプロセッサを実装する必要はありません。 2である。 –

関連する問題