Поделиться через


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 минут).

Default value: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Обратный вызов можно указать при потере блокировки зарегистрированного возобновляемого объекта. Значение по умолчанию — None (без обратного вызова).

Default value: None
loop
Default value: 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

Время в секундах, на которое должна поддерживаться блокировка. Значение по умолчанию —Нет. Если этот параметр указан, это значение переопределяет значение по умолчанию, указанное в конструкторе.

Default value: None
on_lock_renew_failure
Optional[<xref:AsyncLockRenewFailureCallback>]

Можно указать асинхронный обратный вызов, который будет вызван при потере блокировки зарегистрированного возобновляемого объекта. Значение по умолчанию — None (без обратного вызова). :rtype: нет

Default value: None