AutoLockRenewer Класс
Автоматическое продление блокировки.
Асинхронный обработчик AutoLockRenewer для обновления маркеров блокировки сообщений и (или) сеансов в фоновом режиме.
- Наследование
-
builtins.objectAutoLockRenewer
Конструктор
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
|
Azure SDK for Python
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по