Udostępnij za pośrednictwem


SubscriptionEventHandlers interface

Interfejs opisujący funkcje, które mają być implementowane przez użytkownika, który jest wywoływany przez EventHubConsumerClient, gdy metoda subscribe() jest wywoływana w celu odbierania zdarzeń z centrum zdarzeń.

Właściwości

processClose

Funkcja wywoływana przez EventHubConsumerClient za każdym razem, gdy subskrypcja zatrzymuje odczytywanie zdarzeń z partycji. Informacje o tej partycji będą dostępne w PartitionContext przekazane do funkcji processClose.

Jeśli CloseReason przekazana do tej funkcji jest OwnershipLost, inna subskrypcja przejęła odczyt z tej samej partycji przy użyciu tej samej grupy odbiorców. Jest to oczekiwane, jeśli masz uruchomione wiele wystąpień aplikacji i przekazano CheckpointStore klientowi w celu równoważenia obciążenia.

Jeśli CloseReason jest Shutdown, oznacza to, że wywołano subscription.close() lub wystąpił błąd. Jeśli subskrypcja nie została jawnie zamknięta za pośrednictwem subscription.close(), subskrypcja podejmie próbę wznowienia odczytu zdarzeń z ostatniego punktu kontrolnego partycji.

processError

Funkcja wywoływana przez EventHubConsumerClient pod kątem błędów występujących podczas odbierania zdarzeń lub wykonywania dowolnego z udostępnionych przez użytkownika funkcji przekazanych do metody subscribe().

PartitionContext przekazana do tej funkcji będzie wskazywać partycję, która została przetworzona podczas zgłaszania błędu. W przypadkach, gdy błąd jest zgłaszany poza przetwarzaniem zdarzeń z partycji (np. niepowodzenie w celu przeprowadzenia równoważenia obciążenia), partitionId w kontekście będzie pustym ciągiem.

Po zakończeniu wykonywania tej funkcji przez klienta wywoływana jest funkcja partitionClose.

processEvents

Funkcja wywoływana przez EventHubConsumerClient po odebraniu zestawu zdarzeń. Za pomocą PartitionContext przekazanej do tej funkcji można określić, z której partycji jest odczytywana.

Metoda updateCheckpoint() w kontekście może służyć do aktualizowania punktów kontrolnych w CheckpointStore (jeśli został podany klientowi). Użyj tego w częstych odstępach czasu, aby oznaczyć zdarzenia, które zostały przetworzone, aby klient mógł ponownie uruchomić z takich punktów kontrolnych w przypadku ponownego uruchomienia lub odzyskiwania błędu.

Uwaga: istnieje możliwość, że odebrane zdarzenia mają być pustą tablicą. Może się tak zdarzyć, jeśli w maxWaitTimeInSecondsnie ma żadnych nowych zdarzeń, które są domyślnie ustawione na 60 sekund. maxWaitTimeInSeconds można zmienić, ustawiając ją w options przekazanym do subscribe().

processInitialize

Funkcja wywoływana przez EventHubConsumerClient za każdym razem, gdy subskrypcja rozpoczyna odczytywanie z partycji. Za pomocą PartitionContext przekazanej do tej funkcji można określić, z której partycji ma zostać odczytany.

Klient rozpocznie odbieranie zdarzeń dla partycji dopiero po zakończeniu wykonywania tej funkcji (jeśli podano). W związku z tym użyj tej funkcji, aby wykonać każdą pracę instalatora, w tym zadania asynchroniczne.

Szczegóły właściwości

processClose

Funkcja wywoływana przez EventHubConsumerClient za każdym razem, gdy subskrypcja zatrzymuje odczytywanie zdarzeń z partycji. Informacje o tej partycji będą dostępne w PartitionContext przekazane do funkcji processClose.

Jeśli CloseReason przekazana do tej funkcji jest OwnershipLost, inna subskrypcja przejęła odczyt z tej samej partycji przy użyciu tej samej grupy odbiorców. Jest to oczekiwane, jeśli masz uruchomione wiele wystąpień aplikacji i przekazano CheckpointStore klientowi w celu równoważenia obciążenia.

Jeśli CloseReason jest Shutdown, oznacza to, że wywołano subscription.close() lub wystąpił błąd. Jeśli subskrypcja nie została jawnie zamknięta za pośrednictwem subscription.close(), subskrypcja podejmie próbę wznowienia odczytu zdarzeń z ostatniego punktu kontrolnego partycji.

processClose?: ProcessCloseHandler

Wartość właściwości

processError

Funkcja wywoływana przez EventHubConsumerClient pod kątem błędów występujących podczas odbierania zdarzeń lub wykonywania dowolnego z udostępnionych przez użytkownika funkcji przekazanych do metody subscribe().

PartitionContext przekazana do tej funkcji będzie wskazywać partycję, która została przetworzona podczas zgłaszania błędu. W przypadkach, gdy błąd jest zgłaszany poza przetwarzaniem zdarzeń z partycji (np. niepowodzenie w celu przeprowadzenia równoważenia obciążenia), partitionId w kontekście będzie pustym ciągiem.

Po zakończeniu wykonywania tej funkcji przez klienta wywoływana jest funkcja partitionClose.

processError: ProcessErrorHandler

Wartość właściwości

processEvents

Funkcja wywoływana przez EventHubConsumerClient po odebraniu zestawu zdarzeń. Za pomocą PartitionContext przekazanej do tej funkcji można określić, z której partycji jest odczytywana.

Metoda updateCheckpoint() w kontekście może służyć do aktualizowania punktów kontrolnych w CheckpointStore (jeśli został podany klientowi). Użyj tego w częstych odstępach czasu, aby oznaczyć zdarzenia, które zostały przetworzone, aby klient mógł ponownie uruchomić z takich punktów kontrolnych w przypadku ponownego uruchomienia lub odzyskiwania błędu.

Uwaga: istnieje możliwość, że odebrane zdarzenia mają być pustą tablicą. Może się tak zdarzyć, jeśli w maxWaitTimeInSecondsnie ma żadnych nowych zdarzeń, które są domyślnie ustawione na 60 sekund. maxWaitTimeInSeconds można zmienić, ustawiając ją w options przekazanym do subscribe().

processEvents: ProcessEventsHandler

Wartość właściwości

processInitialize

Funkcja wywoływana przez EventHubConsumerClient za każdym razem, gdy subskrypcja rozpoczyna odczytywanie z partycji. Za pomocą PartitionContext przekazanej do tej funkcji można określić, z której partycji ma zostać odczytany.

Klient rozpocznie odbieranie zdarzeń dla partycji dopiero po zakończeniu wykonywania tej funkcji (jeśli podano). W związku z tym użyj tej funkcji, aby wykonać każdą pracę instalatora, w tym zadania asynchroniczne.

processInitialize?: ProcessInitializeHandler

Wartość właściwości