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

EventProcessorClient.OnProcessingEventBatchAsync 方法

定义

从事件中心服务读取事件时,执行处理给定分区的一批事件所需的任务。

protected override System.Threading.Tasks.Task OnProcessingEventBatchAsync (System.Collections.Generic.IEnumerable<Azure.Messaging.EventHubs.EventData> events, Azure.Messaging.EventHubs.Primitives.EventProcessorPartition partition, System.Threading.CancellationToken cancellationToken);
override this.OnProcessingEventBatchAsync : seq<Azure.Messaging.EventHubs.EventData> * Azure.Messaging.EventHubs.Primitives.EventProcessorPartition * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Protected Overrides Function OnProcessingEventBatchAsync (events As IEnumerable(Of EventData), partition As EventProcessorPartition, cancellationToken As CancellationToken) As Task

参数

events
IEnumerable<EventData>

要处理的事件批。

partition
EventProcessorPartition

从中读取事件的分区的上下文。

cancellationToken
CancellationToken

一个 CancellationToken 实例,用于向请求发出取消处理信号。 当处理器关闭时,最有可能发生这种情况。

返回

注解

批处理中的 events 事件数可能会有所不同。 该批将包含一些介于零和创建处理器时请求的批大小之间的事件,具体取决于请求的间隔内 MaximumWaitTime 分区中事件的可用性。

如果事件中心分区中有足够的事件可用于填充请求大小的批,处理器将填充该批并立即将其调度到此方法。 如果分区中没有足够的事件来填充完整批,则事件处理器将继续从分区读取以达到请求的批大小,直到 MaximumWaitTime 已过,此时它将返回一个批,其中包含在该时间段结束时可用的任何事件。

MaximumWaitTime如果未请求 (通过将 选项设置为 null来指示 ),事件处理器将继续从事件中心分区读取,直到可以填充所请求大小的整批,并且不会将任何部分批处理调度到此方法。

如果此方法的代码中发生异常,事件处理器将允许它冒泡,并且不会出现在错误处理程序中,也不会尝试以任何方式处理它。 强烈建议开发人员将异常情况考虑在内,并适当地使用 try/catch 块和其他方法进行防范。

不建议直接从此方法中管理处理器的状态;请求启动或停止处理器可能会导致死锁情况,尤其是在使用同步形式的调用时。

适用于