Можно ли настроить концентратор событий Azure для сохранения сообщения, если функция Azure не может его обработать? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть функция Azure, которая прослушивает сообщения в концентраторе событий.Функция принимает сообщения от концентратора событий, обрабатывает их и передает их другому концентратору.На этом этапе сообщения удаляются из концентратора событий.

Если функция не может обработать сообщение по какой-либо причине, можно ли указать концентратору событий не удалять сообщение и попытаться доставить егоФункция снова в какой-то момент в будущем?

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

1 Ответ

0 голосов
/ 15 февраля 2019

Читатели никогда не «удаляют» сообщения из концентратора событий.В этом они отличаются от разделов и очередей служебной шины.

Концентраторы событий полагаются на клиентов для ведения собственных закладок для каждого раздела.Высокоуровневый API EventProcessorHost делает это за вас:

Класс EventProcessorHost также реализует механизм контрольных точек на основе хранилища Azure.Этот механизм сохраняет смещение для каждого раздела, так что каждый потребитель может определить, какой была последняя контрольная точка от предыдущего потребителя.

Но нижний уровень EventHubReceiver предоставляет StartingSequenceNumber свойство для вас, чтобы контролировать это явно.

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

...