ServiceBusSession Класс
ServiceBusSession используется для управления состояниями сеанса и возобновления блокировки.
Используйте свойство session
ServiceBusReceiver, чтобы получить соответствующий объект ServiceBusSession, связанный с получателем, вместо непосредственного создания экземпляра объекта ServiceBusSession.
- Наследование
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
Конструктор
ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)
Параметры
- session_id
- receiver
Примеры
Получение сеанса от получателя
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Методы
get_state |
Получение состояния сеанса. Возвращает значение None, если состояние не задано. |
renew_lock |
Обновите блокировку сеанса. Эта операция должна выполняться периодически, чтобы сохранить блокировку сеанса для продолжения обработки сообщений. После потери блокировки подключение будет закрыто; Блокировка с истекшим сроком действия не может быть продлена. Эту операцию также можно выполнить в виде потоковой фоновой задачи, зарегистрировав сеанс в экземпляре azure.servicebus.aio.AutoLockRenewer . |
set_state |
Задайте состояние сеанса. |
get_state
Получение состояния сеанса.
Возвращает значение None, если состояние не задано.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Параметры
Общее время ожидания операции в секундах, включая все повторные попытки. Значение должно быть больше 0, если указано. Значение по умолчанию — Нет, что означает отсутствие времени ожидания.
Возвращаемое значение
Состояние сеанса.
Возвращаемый тип
Примеры
Получение состояния сеанса
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session_state = await session.get_state()
renew_lock
Обновите блокировку сеанса.
Эта операция должна выполняться периодически, чтобы сохранить блокировку сеанса для продолжения обработки сообщений.
После потери блокировки подключение будет закрыто; Блокировка с истекшим сроком действия не может быть продлена.
Эту операцию также можно выполнить в виде потоковой фоновой задачи, зарегистрировав сеанс в экземпляре azure.servicebus.aio.AutoLockRenewer .
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Параметры
Общее время ожидания операции в секундах, включая все повторные попытки. Значение должно быть больше 0, если указано. Значение по умолчанию — Нет, что означает отсутствие времени ожидания.
Возвращаемое значение
Дата и время в формате UTC, для которого установлен срок действия блокировки.
Возвращаемый тип
Примеры
Продление блокировки сеанса до истечения срока ее действия
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
await session.renew_lock()
set_state
Задайте состояние сеанса.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Параметры
Общее время ожидания операции в секундах, включая все повторные попытки. Значение должно быть больше 0, если указано. Значение по умолчанию — Нет, что означает отсутствие времени ожидания.
Возвращаемое значение
Ответ обратного вызова
Возвращаемый тип
Примеры
Установка состояния сеанса
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
await session.set_state("START")
Атрибуты
locked_until_utc
session_id
Azure SDK for Python
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по