你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ServiceBusProcessor 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
围绕 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 |
获取接收方与之关联的完全限定的服务总线命名空间。 这可能类似于 |
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 |
负责处理从队列或订阅接收的消息的处理程序。 实现是强制性的。 |