다음을 통해 공유


SubscriptionEventHandlers interface

이벤트 허브에서 이벤트를 수신하기 위해 메서드를 호출할 때 subscribe() 에 의해 EventHubConsumerClient 호출되는 사용자가 구현할 함수를 설명하는 인터페이스입니다.

속성

processClose

구독이 EventHubConsumerClient 파티션에서 이벤트 읽기를 중지할 때마다 호출되는 함수입니다. 이 파티션에 대한 정보는 함수processClose에 전달된 에서 PartitionContext 사용할 수 있습니다.

CloseReason 이 함수에 전달된 가 OwnershipLost이면 다른 구독이 동일한 소비자 그룹을 사용하여 동일한 파티션의 읽기를 인수했습니다. 이는 애플리케이션의 여러 인스턴스가 실행 중이고 부하를 분산하기 위해 를 클라이언트에 전달한 CheckpointStore 경우에 예상됩니다.

ShutdownCloseReason 면 가 호출되었거나 오류가 발생했음을 나타냅니다subscription.close(). 를 통해 subscription.close()구독을 명시적으로 닫지 않는 한 구독은 파티션의 마지막 검사점에서 이벤트 읽기를 다시 시작하려고 시도합니다.

processError

이벤트를 수신하거나 메서드에 EventHubConsumerClient 전달된 사용자 제공 함수를 실행할 때 발생하는 오류에 대해 에서 호출하는 subscribe() 함수입니다.

이 함수에 전달된 는 PartitionContext 오류가 throw되었을 때 처리 중인 파티션을 나타냅니다. 파티션의 이벤트 처리 외부에서 오류가 throw되는 경우(예: 부하 분산 수행 실패) partitionId 컨텍스트의 은 빈 문자열이 됩니다.

클라이언트가 이 함수 실행을 완료하면 함수가 partitionClose 호출됩니다.

processEvents

이벤트 집합이 수신될 때 에 의해 EventHubConsumerClient 호출되는 함수입니다. 이 함수에 전달된 를 PartitionContext 사용하여 읽는 파티션을 확인할 수 있습니다.

updateCheckpoint() 컨텍스트의 메서드를 사용하여 에서 검사점(클라이언트에 CheckpointStore 제공된 경우)을 업데이트할 수 있습니다. 클라이언트가 다시 시작 또는 오류 복구 시 이러한 검사점에서 다시 시작할 수 있도록 처리된 이벤트를 표시하려면 이 간격을 자주 사용합니다.

참고: 수신된 이벤트는 빈 배열일 수 있습니다. 이 문제는 에 수신 maxWaitTimeInSeconds할 새 이벤트가 없는 경우 발생할 수 있으며 기본값은 60초입니다. 에 maxWaitTimeInSeconds 전달subscribe()된 에서 options 를 설정하여 를 변경할 수 있습니다.

processInitialize

구독이 EventHubConsumerClient 파티션에서 읽기를 시작할 때마다 호출되는 함수입니다. 이 함수에 전달된 를 PartitionContext 사용하여 읽을 파티션을 확인할 수 있습니다.

클라이언트는 이 함수의 실행을 완료한 후에만 파티션에 대한 이벤트 수신을 시작합니다(제공된 경우). 따라서 이 함수를 사용하여 비동기 작업을 비롯한 모든 설정 작업을 수행합니다.

속성 세부 정보

processClose

구독이 EventHubConsumerClient 파티션에서 이벤트 읽기를 중지할 때마다 호출되는 함수입니다. 이 파티션에 대한 정보는 함수processClose에 전달된 에서 PartitionContext 사용할 수 있습니다.

CloseReason 이 함수에 전달된 가 OwnershipLost이면 다른 구독이 동일한 소비자 그룹을 사용하여 동일한 파티션의 읽기를 인수했습니다. 이는 애플리케이션의 여러 인스턴스가 실행 중이고 부하를 분산하기 위해 를 클라이언트에 전달한 CheckpointStore 경우에 예상됩니다.

ShutdownCloseReason 면 가 호출되었거나 오류가 발생했음을 나타냅니다subscription.close(). 를 통해 subscription.close()구독을 명시적으로 닫지 않는 한 구독은 파티션의 마지막 검사점에서 이벤트 읽기를 다시 시작하려고 시도합니다.

processClose?: ProcessCloseHandler

속성 값

processError

이벤트를 수신하거나 메서드에 EventHubConsumerClient 전달된 사용자 제공 함수를 실행할 때 발생하는 오류에 대해 에서 호출하는 subscribe() 함수입니다.

이 함수에 전달된 는 PartitionContext 오류가 throw되었을 때 처리 중인 파티션을 나타냅니다. 파티션의 이벤트 처리 외부에서 오류가 throw되는 경우(예: 부하 분산 수행 실패) partitionId 컨텍스트의 은 빈 문자열이 됩니다.

클라이언트가 이 함수 실행을 완료하면 함수가 partitionClose 호출됩니다.

processError: ProcessErrorHandler

속성 값

processEvents

이벤트 집합이 수신될 때 에 의해 EventHubConsumerClient 호출되는 함수입니다. 이 함수에 전달된 를 PartitionContext 사용하여 읽는 파티션을 확인할 수 있습니다.

updateCheckpoint() 컨텍스트의 메서드를 사용하여 에서 검사점(클라이언트에 CheckpointStore 제공된 경우)을 업데이트할 수 있습니다. 클라이언트가 다시 시작 또는 오류 복구 시 이러한 검사점에서 다시 시작할 수 있도록 처리된 이벤트를 표시하려면 이 간격을 자주 사용합니다.

참고: 수신된 이벤트는 빈 배열일 수 있습니다. 이 문제는 에 수신 maxWaitTimeInSeconds할 새 이벤트가 없는 경우 발생할 수 있으며 기본값은 60초입니다. 에 maxWaitTimeInSeconds 전달subscribe()된 에서 options 를 설정하여 를 변경할 수 있습니다.

processEvents: ProcessEventsHandler

속성 값

processInitialize

구독이 EventHubConsumerClient 파티션에서 읽기를 시작할 때마다 호출되는 함수입니다. 이 함수에 전달된 를 PartitionContext 사용하여 읽을 파티션을 확인할 수 있습니다.

클라이언트는 이 함수의 실행을 완료한 후에만 파티션에 대한 이벤트 수신을 시작합니다(제공된 경우). 따라서 이 함수를 사용하여 비동기 작업을 비롯한 모든 설정 작업을 수행합니다.

processInitialize?: ProcessInitializeHandler

속성 값