2016-09-15 7 views
0

У меня есть несколько MessagePostProcessors в SpringAMQP, которые я установил с помощью API SimpleMessageListenerContainer.setAfterReceivePostProcessors, теперь мой запрос заключается в том, что эти MessagePostProcessors вызываются в том порядке, в котором я упомянул.Как получить заказ для разных MessagePostProcessors в SimpleMessageListenerContainer

Pseoudo код

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

Так что делает Спринг AMQP messagePostProcessors1 вызова с последующим messagePostProcessors2 в последовательности или делает это случайным образом выбирает тот же?

Если случайным образом выбирает, есть ли способ, что мы можем заказать те же messagePostProcessors2 всегда т.е. вызывается после того, как messagePostProcessors1

ответ

1

Akshat, порядок основан на том порядке, который установлен в processor.Quoting документ здесь. Когда я смотрю на конкретную реализацию процессоров, я нахожу, что есть метод setOrder (как мне кажется, интерфейс формы заказа). Может быть установлено, что в вашем почтовом процессоре сообщение будет делать трюк.

общественных пустот setAfterReceivePostProcessors (MessagePostProcessor ... afterReceivePostProcessors)

Установите MessagePostProcessor, который будет вызывается сразу после того, как канал # basicGet() и перед любым сообщением выполняется преобразование. Может использоваться для операций, таких как декомпрессии. Процессоры вызываются в порядке, в зависимости от PriorityOrder, закажите и, наконец, неупорядочен.

+0

Вам не нужно реализовывать «упорядоченные» - пост-процессоры, которые не будут вызываться после того, что они делают (и в том порядке, в котором они были переданы) - так ... 1 затем ... 2 в этом случае. –