你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ServiceBusSessionProcessor 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
ServiceBusSessionProcessor围绕一组 ServiceBusSessionReceiver 提供抽象,允许使用基于事件的模型来处理收到的 ServiceBusReceivedMessage。 它是通过调用 CreateSessionProcessor(String, ServiceBusSessionProcessorOptions)构造的。 消息处理程序是使用 ProcessMessageAsync 属性指定的。 使用 属性指定 ProcessErrorAsync 错误处理程序。 若要在指定处理程序后开始处理,请调用 StartProcessingAsync(CancellationToken)。
public class ServiceBusSessionProcessor : IAsyncDisposable
type ServiceBusSessionProcessor = class
interface IAsyncDisposable
Public Class ServiceBusSessionProcessor
Implements IAsyncDisposable
- 继承
-
ServiceBusSessionProcessor
- 实现
注解
可以 ServiceBusSessionProcessor 安全地缓存并在应用程序的生存期内使用,或者在释放创建它的 之前 ServiceBusClient 使用。 建议在应用程序定期处理消息时缓存处理器。 发送方负责确保高效的网络、CPU 和内存使用。 在应用程序关闭时对关联的 ServiceBusClient 调用DisposeAsync()将确保正确清理处理器使用的网络资源和其他非托管对象。
构造函数
属性
AutoCompleteMessages |
获取一个值,该值指示处理器是否应在消息处理程序完成处理后自动完成消息。 如果消息处理程序触发异常,则消息不会自动完成。 |
EntityPath |
获取处理器连接到的服务总线实体的路径,该路径特定于包含它的服务总线命名空间。 |
FullyQualifiedNamespace |
获取接收方与之关联的完全限定的服务总线命名空间。 这可能类似于 |
Identifier |
获取用于标识此处理器客户端的标识符。 如果 |
InnerProcessor |
ServiceBusProcessor会话处理器委托给的 。 出于测试目的,可以重写此代码。 |
IsClosed |
指示此 ServiceBusSessionProcessor 是否已关闭。 |
IsProcessing |
获取此处理器当前是否正在处理消息。 |
MaxAutoLockRenewalDuration |
获取自动续订会话锁的最长持续时间。 |
MaxConcurrentCallsPerSession |
获取处理器每个会话将启动的回调的最大调用数。 因此,回调总数将等于 MaxConcurrentSessions * MaxConcurrentCallsPerSession。 默认值为 1。 |
MaxConcurrentSessions |
获取处理器将同时处理的最大会话数。 默认值为 8。 |
PrefetchCount |
获取处理期间将从队列或订阅预先请求的消息数。 这旨在通过允许处理器从本地缓存接收而不是等待服务请求来帮助最大化吞吐量。 |
ReceiveMode |
获取 ReceiveMode 用于指定消息接收方式的 。 默认为 PeekLock 模式。 |
SessionIdleTimeout |
获取等待当前活动会话接收消息的最长时间。 经过该时间后,处理器将关闭此会话并尝试处理另一个会话。 如果未指定, TryTimeout 将使用 。 |
方法
事件
ProcessErrorAsync |
负责处理此处理器运行时引发的未经处理的异常的处理程序。 强制实施。 |
ProcessMessageAsync |
负责处理从队列或订阅收到的消息的处理程序。 强制实施。 |
SessionClosingAsync |
可选处理程序,可以设置为在会话即将关闭进行处理时收到通知。 这意味着最近的 ReceiveMessageAsync(Nullable<TimeSpan>, CancellationToken) 调用超时,或在 ReleaseSession() 处理程序中调用的 ProcessMessageAsync 调用。 |
SessionInitializingAsync |
可选处理程序,可以设置为在即将处理新会话时收到通知。 |