2016-09-15 2 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를 따라 수행하거나 무작위로 같은 선택합니까?

가 무작위로 선택하면

우리가 항상 messagePostProcessors1

답변

1

Akshat 후 호출되는 동일한 즉의 messagePostProcessors2을 주문할 수있는 방법은 순서가 문서 여기 processor.Quoting에 설정된 순서가 기반이다. 내가 프로세서의 구체적인 구현을 보면, 나는 setOrder 메소드 (폼 인터페이스가 생각한 것)가 있다는 것을 알았다. 귀하의 메시지 게시자 프로세서에서 트릭을 설정할 수 있습니다.

공공 무효 setAfterReceivePostProcessors (위해 MessagePostProcessor ... afterReceivePostProcessors)

은 채널 # basicGet (후 즉시 호출 될 것입니다 위해 MessagePostProcessor 설정) 및 메시지 전에 변환을 수행한다. 압축 해제와 같은 작업에 사용될 수 있습니다. PriorityOrder, Order 및 finally unordered에 따라 프로세서가 순서대로 호출됩니다.

+0

당신은'Ordered' 포스트 프로세서를 구현할 필요가 없습니다. (그렇게 전달 된 순서대로 (그리고 전달 된 순서대로)) 호출됩니다. 그렇다면 ... 1 ... 이 경우 2입니다. –

관련 문제