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

EventProcessor<TPartition> 类

定义

为创建自定义处理器提供基础,该处理器在给定事件中心的所有分区中为特定使用者组使用事件。 处理器能够与同一事件中心和使用者组配对的其他实例协作,通过使用通用存储平台进行通信来共享工作。 此外,还内置了容错功能,允许处理器在遇到错误时具有复原能力。

public abstract class EventProcessor<TPartition> where TPartition : EventProcessorPartition, new()
type EventProcessor<'Partition (requires 'Partition :> EventProcessorPartition and 'Partition : (new : unit -> 'Partition))> = class
Public MustInherit Class EventProcessor(Of TPartition)

类型参数

TPartition

要对其执行操作的分区的上下文。

继承
EventProcessor<TPartition>
派生

注解

为了在实例之间 EventProcessor<TPartition> 实现分区共享的协调,他们将断言对使用者组的分区的独占读取访问权限。 除了打算协作的处理器之外,其他读取器不应在使用者组中处于活动状态。 非独占读者将被拒绝访问;独占读取器(包括使用不同存储位置的处理器)将干扰处理器的操作和性能。

可以 EventProcessor<TPartition> 安全地缓存并在应用程序的生存期内使用,这是推荐的方法。 处理器负责确保高效的网络、CPU 和内存使用。 StopProcessingAsync(CancellationToken)当所有处理完成或应用程序关闭时调用 或 StopProcessing(CancellationToken) 将确保正确清理网络资源和其他非托管对象。

构造函数

EventProcessor<TPartition>()

初始化 EventProcessor<TPartition> 类的新实例。

EventProcessor<TPartition>(Int32, String, String, EventProcessorOptions)

初始化 EventProcessor<TPartition> 类的新实例。

EventProcessor<TPartition>(Int32, String, String, String, AzureNamedKeyCredential, EventProcessorOptions)

初始化 EventProcessor<TPartition> 类的新实例。

EventProcessor<TPartition>(Int32, String, String, String, AzureSasCredential, EventProcessorOptions)

初始化 EventProcessor<TPartition> 类的新实例。

EventProcessor<TPartition>(Int32, String, String, String, EventProcessorOptions)

初始化 EventProcessor<TPartition> 类的新实例。

EventProcessor<TPartition>(Int32, String, String, String, TokenCredential, EventProcessorOptions)

初始化 EventProcessor<TPartition> 类的新实例。

属性

ConsumerGroup

与此事件处理程序关联的使用者组的名称。 事件将在此组的上下文中为只读。

EventHubName

处理器连接到的事件中心的名称,特定于包含它的事件中心命名空间。

FullyQualifiedNamespace

与处理器关联的完全限定的事件中心命名空间。 这可能类似于 {yournamespace}.servicebus.windows.net

Identifier

用于标识此事件处理程序的唯一名称。

IsRunning

指示此事件处理程序当前是否正在运行。

RetryPolicy

控制处理器重试尝试的活动策略。

方法

ClaimOwnershipAsync(IEnumerable<EventProcessorPartitionOwnership>, CancellationToken)

尝试声明要处理的指定分区的所有权。 负载均衡使用此操作来分配处理事件中心和活动事件处理器之间使用者组配对的分区的责任。

CreateConnection()

EventHubConnection创建用于与事件中心服务通信的 。

GetCheckpointAsync(String, CancellationToken)

返回事件中心、使用者组以及与事件处理器实例关联的分区的标识符的检查点,以便可以正确初始化给定分区的处理。 默认实现调用 Azure.Messaging.EventHubs.Primitives.EventProcessor`1.ListCheckpointsAsync(System.Threading.CancellationToken) 并按 PartitionId筛选结果。 建议在实现中 EventProcessor<TPartition> 重写此方法,以实现最佳性能。

ListOwnershipAsync(CancellationToken)

请求给定事件中心和使用者组配对的每个协作事件处理器实例之间的分区的所有权分配列表。 在负载均衡期间,此方法用于允许处理器发现其他活动协作者,并决定如何最好地平衡它们之间的工作。

ListPartitionIdsAsync(EventHubConnection, CancellationToken)

查询事件中心分区的标识符。

OnInitializingPartitionAsync(TPartition, CancellationToken)

执行初始化分区及其关联上下文以用于事件处理的任务。

OnPartitionProcessingStoppedAsync(TPartition, ProcessingStoppedReason, CancellationToken)

执行停止对分区的处理时所需的任务。 当分区由另一个事件处理器实例声明或当前事件处理器实例正在关闭时,通常会发生这种情况。

OnProcessingErrorAsync(Exception, TPartition, String, CancellationToken)

在事件处理器基础结构的操作中发生意外异常时,执行所需的任务。

OnProcessingEventBatchAsync(IEnumerable<EventData>, TPartition, CancellationToken)

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

ReadLastEnqueuedEventProperties(String)

从事件中心服务接收事件时,与此上下文关联的 EventHubs 客户端观察到的一组有关分区的最后一个排队事件的信息。 仅当使用 set 创建 TrackLastEnqueuedEventProperties 使用者时,这才可用。

StartProcessing(CancellationToken)

EventProcessor<TPartition> 发出信号以开始处理事件。 如果在处理器运行时调用此方法,则不会执行任何操作。

StartProcessingAsync(CancellationToken)

EventProcessor<TPartition> 发出信号以开始处理事件。 如果在处理器运行时调用此方法,则不会执行任何操作。

StopProcessing(CancellationToken)

指示 EventProcessor<TPartition> 停止处理事件。 如果在处理器未运行时调用此方法,则不执行任何操作。

StopProcessingAsync(CancellationToken)

指示 EventProcessor<TPartition> 停止处理事件。 如果在处理器未运行时调用此方法,则不执行任何操作。

UpdateCheckpointAsync(String, Int64, Nullable<Int64>, CancellationToken)

创建或更新特定分区的检查点,标识事件处理器应从该分区的事件流中读取的位置。

ValidateProcessingPreconditions(CancellationToken)

执行验证处理器正常运行所需的依赖项的基本配置和权限所需的任务。

适用于