你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
AutoLockRenewer 类
使用后台线程池自动续订消息和会话的锁。
使用后台线程池自动续订消息和会话的锁。 当 AutoLockRenewer 应同时处理多个消息或会话时,建议将max_worker设置为大数或传递大max_workers号的 ThreadPoolExecutor。
- 继承
-
builtins.objectAutoLockRenewer
构造函数
AutoLockRenewer(max_lock_renewal_duration: float = 300, on_lock_renew_failure: LockRenewFailureCallback | None = None, executor: ThreadPoolExecutor | None = None, max_workers: int | None = None)
参数
名称 | 说明 |
---|---|
max_lock_renewal_duration
|
应保留注册到此续订者的锁定的时间(以秒为单位)。 默认值为 300 (5 分钟) 。 默认值: 300
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
可以指定在注册的可续订的 锁定丢失时调用回调。 默认值为 None (无回调) 。 默认值: None
|
executor
|
用户指定的线程池。 这不能与设置 max_workers结合使用。 默认值: None
|
max_workers
|
指定线程池中的最大工作线程数。 如果未指定,则使用的数字将派生自环境的核心计数。 这不能与 执行程序结合使用。 默认值: None
|
max_lock_renewal_duration
必需
|
应保留注册到此续订者的锁定的时间(以秒为单位)。 默认值为 300 (5 分钟) 。 |
on_lock_renew_failure
必需
|
Optional[<xref:LockRenewFailureCallback>]
可以指定在注册的可续订的 锁定丢失时调用回调。 默认值为 None (无回调) 。 |
executor
必需
|
用户指定的线程池。 这不能与设置 max_workers结合使用。 |
max_workers
必需
|
指定线程池中的最大工作线程数。 如果未指定,则使用的数字将派生自环境的核心计数。 这不能与 执行程序结合使用。 |
示例
自动续订消息锁
from azure.servicebus import AutoLockRenewer
lock_renewal = AutoLockRenewer(max_workers=4)
with servicebus_receiver:
for message in servicebus_receiver:
# Auto renew message for 1 minute.
lock_renewal.register(servicebus_receiver, message, max_lock_renewal_duration=60)
process_message(message)
servicebus_receiver.complete_message(message)
自动续订会话锁
from azure.servicebus import AutoLockRenewer
lock_renewal = AutoLockRenewer(max_workers=4)
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
# Auto renew session lock for 2 minutes
lock_renewal.register(receiver, session, max_lock_renewal_duration=120)
for message in receiver:
process_message(message)
receiver.complete_message(message)
方法
close |
通过关闭线程池来清除所有剩余的锁续订线程,从而停止自动续订。 |
register |
注册可续订实体以自动续订锁。 |
close
通过关闭线程池来清除所有剩余的锁续订线程,从而停止自动续订。
close(wait: bool = True) -> None
参数
名称 | 说明 |
---|---|
wait
|
是否在线程池关闭之前阻止。 默认值为 True。 默认值: True
|
返回
类型 | 说明 |
---|---|
register
注册可续订实体以自动续订锁。
register(receiver: ServiceBusReceiver, renewable: ServiceBusReceivedMessage | ServiceBusSession, max_lock_renewal_duration: float | None = None, on_lock_renew_failure: LockRenewFailureCallback | None = None) -> None
参数
名称 | 说明 |
---|---|
receiver
必需
|
与要自动锁定续订的消息或会话关联的 ServiceBusReceiver 实例。 |
renewable
必需
|
需要续订的锁定实体。 |
max_lock_renewal_duration
|
应保留锁的时间(以秒为单位)。 默认值为 None。 如果指定,此值将替代构造函数中指定的默认值。 默认值: None
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
可以指定在注册的可续订的 锁定丢失时调用回调。 默认值为 None (无回调) 。 默认值: None
|
返回
类型 | 说明 |
---|---|