你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
EventProcessorClient.OnProcessingEventBatchAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从事件中心服务读取事件时,执行处理给定分区的一批事件所需的任务。
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 块和其他方法进行防范。
不建议直接从此方法中管理处理器的状态;请求启动或停止处理器可能会导致死锁情况,尤其是在使用同步形式的调用时。