你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

SubscriptionEventHandlers interface

接口,描述用户要实现的函数,当用户调用 subscribe() 方法以从事件中心接收事件时,EventHubConsumerClient 调用这些函数。

属性

processClose

每次订阅停止从分区读取事件时,EventHubConsumerClient 调用的函数。 传递给函数 processClosePartitionContext 上将提供有关此分区的信息。

如果传递给此函数的 CloseReasonOwnershipLost,则另一个订阅使用同一个使用者组接管了从同一分区读取。 如果应用程序的多个实例正在运行,并且已将 CheckpointStore 传递给客户端进行负载均衡,则预期会出现这种情况。

如果 CloseReasonShutdown,则表示已调用 subscription.close() 或发生错误。 除非订阅通过 subscription.close()显式关闭,否则订阅将尝试从分区的最后一个检查点恢复读取事件。

processError

EventHubConsumerClient 调用的函数用于接收事件或执行传递给 subscribe() 方法的任何用户提供的函数时发生的错误。

传递给此函数的 PartitionContext 将指示引发错误时正在处理的分区。 如果从分区(例如无法执行负载均衡)处理事件之外引发错误,则上下文上的 partitionId 将为空字符串。

客户端完成执行此函数后,将调用 partitionClose 函数。

processEvents

收到一组事件时,由 EventHubConsumerClient 调用的函数。 传递给此函数的 PartitionContext 可用于确定要从中读取哪个分区。

上下文上的 updateCheckpoint() 方法可用于更新 CheckpointStore 中的检查点(如果提供给客户端)。 在频繁的间隔内使用此标记已处理的事件,以便客户端可以在重启或错误恢复时从此类检查点重启。

注意:接收的事件可以是空数组。 如果 maxWaitTimeInSeconds中没有要接收的新事件,则可能会发生这种情况,该事件默认为 60 秒。 可以通过在传递给 subscribe()options 中设置 maxWaitTimeInSeconds

processInitialize

每次订阅开始从分区读取时,EventHubConsumerClient 调用的函数。 传递给此函数的 PartitionContext 可用于确定要从中读取的分区。

只有在完成此函数的执行(如果提供)后,客户端才会开始接收分区的事件。 因此,使用此函数执行任何设置工作,包括异步任务。

属性详细信息

processClose

每次订阅停止从分区读取事件时,EventHubConsumerClient 调用的函数。 传递给函数 processClosePartitionContext 上将提供有关此分区的信息。

如果传递给此函数的 CloseReasonOwnershipLost,则另一个订阅使用同一个使用者组接管了从同一分区读取。 如果应用程序的多个实例正在运行,并且已将 CheckpointStore 传递给客户端进行负载均衡,则预期会出现这种情况。

如果 CloseReasonShutdown,则表示已调用 subscription.close() 或发生错误。 除非订阅通过 subscription.close()显式关闭,否则订阅将尝试从分区的最后一个检查点恢复读取事件。

processClose?: ProcessCloseHandler

属性值

processError

EventHubConsumerClient 调用的函数用于接收事件或执行传递给 subscribe() 方法的任何用户提供的函数时发生的错误。

传递给此函数的 PartitionContext 将指示引发错误时正在处理的分区。 如果从分区(例如无法执行负载均衡)处理事件之外引发错误,则上下文上的 partitionId 将为空字符串。

客户端完成执行此函数后,将调用 partitionClose 函数。

processError: ProcessErrorHandler

属性值

processEvents

收到一组事件时,由 EventHubConsumerClient 调用的函数。 传递给此函数的 PartitionContext 可用于确定要从中读取哪个分区。

上下文上的 updateCheckpoint() 方法可用于更新 CheckpointStore 中的检查点(如果提供给客户端)。 在频繁的间隔内使用此标记已处理的事件,以便客户端可以在重启或错误恢复时从此类检查点重启。

注意:接收的事件可以是空数组。 如果 maxWaitTimeInSeconds中没有要接收的新事件,则可能会发生这种情况,该事件默认为 60 秒。 可以通过在传递给 subscribe()options 中设置 maxWaitTimeInSeconds

processEvents: ProcessEventsHandler

属性值

processInitialize

每次订阅开始从分区读取时,EventHubConsumerClient 调用的函数。 传递给此函数的 PartitionContext 可用于确定要从中读取的分区。

只有在完成此函数的执行(如果提供)后,客户端才会开始接收分区的事件。 因此,使用此函数执行任何设置工作,包括异步任务。

processInitialize?: ProcessInitializeHandler

属性值