Центр событий Azure, получать события только после обработки предыдущих событий? - PullRequest
0 голосов
/ 02 апреля 2019

Я использую концентратор событий Azure для проекта через этот пакет npm @ azure / events-hub

Мне интересно, есть ли способ заставить получателя события получать новое событие только тогда, когда оно завершает обработку ранее полученного события. Дело в том, что я хочу обрабатывать одно событие за раз. В настоящее время я наблюдаю, что он отправляет события обработчику в тот момент, когда они становятся доступными.

Используемый API - это client.receive(partitionId, onMessage, onError) из документов. Хотите знать, есть ли способ достичь упомянутого поведения, с этим API.

1 Ответ

1 голос
/ 04 апреля 2019

Метод client.receive() возвращает объект RecieverHandler, который можно использовать для остановки потока с помощью его метода stop().Затем вы могли бы запустить его снова, используя новый client.receive().

Другой вариант - использовать client.recieveBatch(), если максимальный размер партии установлен в 1.

Ни один из этих вариантов не является идеальным, так какПитер Бонс упомянул, что концентраторы событий не предназначены для медленной передачи данных. Служба предполагает, что вы сможете принимать сообщения с той же скоростью, с которой они пришли, и что у вас будет только 1 получатель на раздел.Service Bus действительно хорошая альтернатива для изучения.Вы можете выбрать, сколько сообщений получать одновременно, и подключить несколько получателей, каждый из которых обрабатывает одно сообщение, для масштабирования вашего решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...