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


SubscriptionEventHandlers interface

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

Свойства

processClose

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

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

CloseReason Если имеет значение Shutdown, это означает, что либо 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 нагрузки.

CloseReason Если имеет значение Shutdown, это означает, что либо 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

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