Поделиться через


SubscriptionEventHandlers interface

Интерфейс, описывающий функции, которые будут реализованы пользователем, вызываемыми EventHubConsumerClient при вызове метода subscribe() для получения событий из концентратора событий.

Свойства

processClose

Функция, вызываемая EventHubConsumerClient каждый раз, когда подписка перестает читать события из секции. Сведения об этом разделе будут доступны на PartitionContext, переданной функции processClose.

Если CloseReason переданной этой функции OwnershipLost, то другая подписка взяла на себя чтение из той же секции с помощью той же группы потребителей. Это ожидается, если у вас есть несколько экземпляров запущенного приложения и переданы CheckpointStore клиенту в подсистему балансировки нагрузки.

Если CloseReasonShutdown, это означает, что был вызван subscription.close() или произошла ошибка. Если подписка не была явно закрыта через subscription.close(), подписка попытается возобновить чтение событий из последней контрольной точки для секции.

processError

Функция, вызываемая EventHubConsumerClient для ошибок, возникающих при получении событий или при выполнении любой из предоставленных пользователем функций, переданных методу subscribe().

PartitionContext, переданные этой функции, указывают на секцию, которая обрабатывается при возникновении ошибки. В случаях, когда ошибка возникает вне событий обработки секции (например, сбой балансировки нагрузки), partitionId в контексте будет пустой строкой.

После завершения выполнения этой функции клиент вызывает функцию partitionClose.

processEvents

Функция, вызываемая EventHubConsumerClient при получении набора событий. PartitionContext, передаваемые этой функции, можно использовать для определения того, какой раздел считывается.

Метод updateCheckpoint() в контексте можно использовать для обновления контрольных точек в CheckpointStore (если он был предоставлен клиенту). Используйте это в частых интервалах, чтобы пометить события, которые были обработаны, чтобы клиент смог перезапустить из таких контрольных точек в случае перезапуска или восстановления ошибок.

Примечание. Получение событий может быть пустым массивом. Это может произойти, если в maxWaitTimeInSecondsнет новых событий, что по умолчанию составляет 60 секунд. maxWaitTimeInSeconds можно изменить, задав его в options, переданном в subscribe().

processInitialize

Функция, вызываемая EventHubConsumerClient каждый раз, когда подписка начинает чтение из раздела. PartitionContext, передаваемые этой функции, можно использовать для определения того, какой раздел будет считываться.

Клиент начнет получать события для секции только после завершения выполнения этой функции (если это указано). Поэтому используйте эту функцию для выполнения любой работы по настройке, включая асинхронные задачи.

Сведения о свойстве

processClose

Функция, вызываемая EventHubConsumerClient каждый раз, когда подписка перестает читать события из секции. Сведения об этом разделе будут доступны на PartitionContext, переданной функции processClose.

Если CloseReason переданной этой функции OwnershipLost, то другая подписка взяла на себя чтение из той же секции с помощью той же группы потребителей. Это ожидается, если у вас есть несколько экземпляров запущенного приложения и переданы CheckpointStore клиенту в подсистему балансировки нагрузки.

Если CloseReasonShutdown, это означает, что был вызван subscription.close() или произошла ошибка. Если подписка не была явно закрыта через subscription.close(), подписка попытается возобновить чтение событий из последней контрольной точки для секции.

processClose?: ProcessCloseHandler

Значение свойства

processError

Функция, вызываемая EventHubConsumerClient для ошибок, возникающих при получении событий или при выполнении любой из предоставленных пользователем функций, переданных методу subscribe().

PartitionContext, переданные этой функции, указывают на секцию, которая обрабатывается при возникновении ошибки. В случаях, когда ошибка возникает вне событий обработки секции (например, сбой балансировки нагрузки), partitionId в контексте будет пустой строкой.

После завершения выполнения этой функции клиент вызывает функцию partitionClose.

processError: ProcessErrorHandler

Значение свойства

processEvents

Функция, вызываемая EventHubConsumerClient при получении набора событий. PartitionContext, передаваемые этой функции, можно использовать для определения того, какой раздел считывается.

Метод updateCheckpoint() в контексте можно использовать для обновления контрольных точек в CheckpointStore (если он был предоставлен клиенту). Используйте это в частых интервалах, чтобы пометить события, которые были обработаны, чтобы клиент смог перезапустить из таких контрольных точек в случае перезапуска или восстановления ошибок.

Примечание. Получение событий может быть пустым массивом. Это может произойти, если в maxWaitTimeInSecondsнет новых событий, что по умолчанию составляет 60 секунд. maxWaitTimeInSeconds можно изменить, задав его в options, переданном в subscribe().

processEvents: ProcessEventsHandler

Значение свойства

processInitialize

Функция, вызываемая EventHubConsumerClient каждый раз, когда подписка начинает чтение из раздела. PartitionContext, передаваемые этой функции, можно использовать для определения того, какой раздел будет считываться.

Клиент начнет получать события для секции только после завершения выполнения этой функции (если это указано). Поэтому используйте эту функцию для выполнения любой работы по настройке, включая асинхронные задачи.

processInitialize?: ProcessInitializeHandler

Значение свойства