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

ServiceBusProcessor 类

定义

围绕 ServiceBusProcessor 一组 ServiceBusReceiver 提供抽象,允许使用基于事件的模型来处理收到的 ServiceBusReceivedMessage。 它是通过调用 CreateProcessor(String, ServiceBusProcessorOptions)构造的。 消息处理程序是使用 ProcessMessageAsync 属性指定的。 错误处理程序是使用 ProcessErrorAsync 属性指定的。 若要在指定处理程序后开始处理,请调用 StartProcessingAsync(CancellationToken)

public class ServiceBusProcessor : IAsyncDisposable
type ServiceBusProcessor = class
    interface IAsyncDisposable
Public Class ServiceBusProcessor
Implements IAsyncDisposable
继承
ServiceBusProcessor
实现

注解

ServiceBusProcessor可以安全地缓存并在应用程序的生存期内使用,或者直到ServiceBusClient释放它所创建的 。 当应用程序定期处理消息时,建议缓存处理器。 发送方负责确保高效使用网络、CPU 和内存。 在应用程序关闭时对关联的 ServiceBusClient 调用DisposeAsync()可确保正确清理处理器使用的网络资源和其他非托管对象。

构造函数

ServiceBusProcessor()

初始化 类的新实例 ServiceBusProcessor 进行模拟。

ServiceBusProcessor(ServiceBusClient, String, ServiceBusProcessorOptions)

初始化 类的新实例, ServiceBusProcessor 以便与派生类型一起使用。

ServiceBusProcessor(ServiceBusClient, String, String, ServiceBusProcessorOptions)

初始化 类的新实例, ServiceBusProcessor 以便与派生类型一起使用。

属性

AutoCompleteMessages

获取一个值,该值指示处理器是否应在消息处理程序完成处理后自动完成消息。 如果消息处理程序触发异常,则消息不会自动完成。

EntityPath

获取处理器连接到的服务总线实体的路径,该路径特定于包含它的服务总线命名空间。

FullyQualifiedNamespace

获取接收方与之关联的完全限定的服务总线命名空间。 这可能类似于 {yournamespace}.servicebus.windows.net

Identifier

获取用于标识此处理器的 ID。 这可用于关联日志和异常。

IsClosed

指示是否已关闭。ServiceBusProcessor

IsProcessing

获取此处理器当前是否正在处理消息。

MaxAutoLockRenewalDuration

获取锁自动续订的最长持续时间。 此值应大于最长的消息锁定持续时间;例如 LockDuration 属性。

MaxConcurrentCalls

获取处理器应启动的消息处理程序的最大并发调用 ProcessMessageAsync 数。

PrefetchCount

获取处理期间将从队列或订阅预先请求的消息数。 这旨在通过允许处理器从本地缓存接收,而不是等待服务请求,从而最大程度地提高吞吐量。

ReceiveMode

ReceiveMode获取用于指定消息接收方式的 。 默认为“PeekLock”模式。

方法

CloseAsync(CancellationToken)

执行清理 所使用的 ServiceBusProcessor资源所需的任务。 任何正在进行的消息处理程序都将等待。 完成所有消息处理后,将关闭基础链接。 在此之后,方法将返回。 这等效于调用 DisposeAsync()

DisposeAsync()

执行清理 所使用的 ServiceBusProcessor资源所需的任务。 任何正在进行的消息处理程序都将等待。 完成所有消息处理后,将关闭基础链接。 在此之后,方法将返回。 这等效于调用 CloseAsync(CancellationToken)

OnProcessErrorAsync(ProcessErrorEventArgs)

在处理过程中发生错误时调用错误事件处理程序。 可以重写此方法,以手动引发事件以进行测试。

OnProcessMessageAsync(ProcessMessageEventArgs)

在收到消息后调用进程消息事件处理程序。 可以重写此方法,以手动引发事件以进行测试。

StartProcessingAsync(CancellationToken)

向处理器发出开始处理消息的信号。 如果在处理器正在运行时调用此方法, InvalidOperationException 则会引发 。

StopProcessingAsync(CancellationToken)

向处理器发出停止处理消息的信号。 如果在处理器未运行时调用此方法,则不执行任何操作。 此方法不会关闭基础接收器,但会导致接收方停止接收。 将等待任何正在进行的消息处理程序,此方法不会返回,直到所有正在进行的消息处理程序都已返回。 若要关闭基础接收器, CloseAsync(CancellationToken) 应调用 。 如果 CloseAsync(CancellationToken) 调用 ,则无法重启处理器。 如果希望在调用此方法后某个时间点恢复处理,可以调用 StartProcessingAsync(CancellationToken)

UpdateConcurrency(Int32)

汇报处理器的并发性。 此方法可用于动态更改正在运行的处理器的并发性。

UpdatePrefetchCount(Int32)

汇报处理器的预提取计数。 此方法可用于动态更改正在运行的处理器的预提取计数。

事件

ProcessErrorAsync

负责处理此处理器运行时引发的未经处理的异常的处理程序。 实现是强制性的。

ProcessMessageAsync

负责处理从队列或订阅接收的消息的处理程序。 实现是强制性的。

适用于