2016-04-04 4 views
1

Предпосылки -агрегатор поведения при перезапуске сервера - весна интеграция

В весенней интеграции, если у меня есть агрегатор с сообщением группы, которая является неполной. Перед групповым выпуском stratergy выполняется перезагрузка сервера.

  • Текущий Behavior-> все сообщения, размещаемые в агрегаторе перейти к той же группе сообщений и не является новым, так как оно не отмечено полное, сообщения держать течет.
  • Expected-> Если перезапуска сервера, агрегатор выбирает оставшиеся сообщения из хранилища сообщений, метки уже сохранялись те полный & затем обслуживать новые,

ли мои ожидания неправильно? Может ли кто-нибудь руководствоваться?

ответ

1

Я думаю, что мы сможем достичь ваших требований с помощью MessageGroupStoreReaper, который вы будете запускать только при запуске сервера, например. по ловле ContextRefreshedEvent:

MessageGroupStore поддерживает список этих обратных вызовов, которые он применяет, по требованию, ко всем сообщениям, чьи временные метки раньше, чем время в качестве параметра (см registerMessageGroupExpiryCallback (..) и expireMessageGroups (..) выше).

Метод expireMessageGroups можно вызывать со значением таймаута. Любое сообщение старше текущего времени минус это значение будет истекло, и будут применены обратные вызовы. Таким образом, пользователь магазина определяет, что означает группа сообщений «expiry».

http://docs.spring.io/spring-integration/reference/html/messaging-routing-chapter.html#reaper

+0

Спасибо Артем, у меня есть такая жатки в месте, которое проходит через хрон каждый день 2000 часов. С тем, что вы говорите, пожалуйста, исправьте меня, если не так, если сервер в указанное время, он все равно очистит все сообщения, сохраненные в предыдущий день? Это? –

+0

Правильно, это моя идея. Не уверен в вашем существующем 'reaper', но этот новый должен быть вызван только один раз из запуска приложения. «Тайм-аут» может быть просто «0», чтобы очистить все в «MessageStore». Поскольку это заново, очевидно, что все существующие сообщения в магазине устарели, поэтому их необходимо очистить. –

+0

Работы .. Спасибо. :) –

Смежные вопросы