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

AutoLockRenewer 类

自动锁定续订。

异步 AutoLockRenewer 处理程序,用于在后台续订消息和/或会话的锁令牌。

继承
builtins.object
AutoLockRenewer

构造函数

AutoLockRenewer(max_lock_renewal_duration: float = 300, on_lock_renew_failure: Callable[[ServiceBusSession | ServiceBusReceivedMessage, Exception | None], Awaitable[None]] | None = None, loop: AbstractEventLoop | None = None)

参数

名称 说明
max_lock_renewal_duration

应保留注册到此续订者的锁定时间(以秒为单位)。 默认值为 300 (5 分钟) 。

默认值: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

可以指定在注册的可续订的锁定丢失时调用回调。 默认值为 None (无回调) 。

默认值: None
loop
默认值: None

示例

自动续订消息锁


   from azure.servicebus.aio import AutoLockRenewer

   lock_renewal = AutoLockRenewer()
   async with servicebus_receiver:
       async for message in servicebus_receiver:
           lock_renewal.register(servicebus_receiver, message, max_lock_renewal_duration=60)
           await process_message(message)
           await servicebus_receiver.complete_message(message)

自动续订会话锁


       from azure.servicebus.aio import AutoLockRenewer

       lock_renewal = AutoLockRenewer()
       async 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)
           async for message in receiver:
               await process_message(message)
               await receiver.complete_message(message)

方法

close

通过取消任何剩余的开放锁续订期货来停止自动续订。

register

注册可续订实体以自动续订锁。

close

通过取消任何剩余的开放锁续订期货来停止自动续订。

async close() -> None

register

注册可续订实体以自动续订锁。

register(receiver: ServiceBusReceiver, renewable: ServiceBusReceivedMessage | ServiceBusSession, max_lock_renewal_duration: float | None = None, on_lock_renew_failure: Callable[[ServiceBusSession | ServiceBusReceivedMessage, Exception | None], Awaitable[None]] | None = None) -> None

参数

名称 说明
receiver
必需

与要自动锁定续订的消息或会话关联的 ServiceBusReceiver 实例。

renewable
必需
Union[<xref:azure.servicebus.aio.ServiceBusReceivedMessage>,ServiceBusSession]

需要续订的锁定实体。

max_lock_renewal_duration

应为其保留锁的时间(以秒为单位)。 默认值为 None。 如果指定,此值将覆盖构造函数中指定的默认值。

默认值: None
on_lock_renew_failure
Optional[<xref:AsyncLockRenewFailureCallback>]

可以指定一个异步回调,在注册的可续订的锁定丢失时调用。 默认值为 None (无回调) 。 :rtype: None

默认值: None