2013-05-29 4 views

ответ

3

BatchEventProcessor является реализацией eventProcessor, которая отслеживает количество доступных событий каждый раз его вызов. Затем он делегирует фактическую обработку каждого события вашему eventHandler и сигнализирует, когда окончательное событие пакета было доставлено вашему обработчику событий.

Идея состоит в том, что если вы хотите отложить публикацию события от вашего обработчика, например, добавление группы событий в одно более крупное сообщение.

1

Если мы говорим о задаче «добавив группу событий в один большое сообщение» от Сэма ответа, BatchEventProcessor делает возможным для нас две основных вещей:

  1. Мы получим «endOfBatch = = true "при последнем вызове серии событий, поэтому мы можем отложить публикацию массовых сообщений на вызов с помощью" endOfBatch == true ", и мы не застреваем в ситуации, когда в течение нескольких минут нет событий, и мы не отправьте уже собранные один раз, и нам необходимо дополнительно справиться с этой ситуацией.
  2. BatchEventProcessor будет перемещать свое значение Sequence только после того, как все сообщения из партии отправятся обработчиком. Это позволяет удерживать предыдущие события текущей партии в нашем Handler и использовать их, например, для создания массового сообщения, и вы не должны думать о производителях, которые могут повредить содержание этих повторно используемых событий. Производители не имеют доступа к этим событиям и связанным с ними последовательностям, пока обработчик не вернется из onEvent (, endOfBatch == true)
Смежные вопросы