ServiceBusSession Clase
ServiceBusSession se usa para administrar los estados de sesión y la renovación del bloqueo.
Use la propiedad session
en ServiceBusReceiver para obtener el objeto ServiceBusSession correspondiente vinculado con el receptor en lugar de crear instancias de un objeto ServiceBusSession directamente.
- Herencia
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
Constructor
ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)
Parámetros
- session_id
- receiver
Ejemplos
Obtener sesión de un receptor
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Métodos
get_state |
Obtiene el estado de sesión. Devuelve None si no se ha establecido ningún estado. |
renew_lock |
Renueve el bloqueo de sesión. Esta operación se debe realizar periódicamente para conservar un bloqueo en la sesión para continuar con el procesamiento de mensajes. Una vez que se pierda el bloqueo, se cerrará la conexión; No se puede renovar un bloqueo expirado. Esta operación también se puede realizar como una tarea en segundo plano en subproceso mediante el registro de la sesión con una instancia de azure.servicebus.aio.AutoLockRenewer . |
set_state |
Establezca el estado de sesión. |
get_state
Obtiene el estado de sesión.
Devuelve None si no se ha establecido ningún estado.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parámetros
Tiempo de espera total de la operación en segundos, incluidos todos los reintentos. El valor debe ser mayor que 0 si se especifica. El valor predeterminado es None, lo que significa que no hay tiempo de espera.
Devoluciones
Estado de sesión.
Tipo de valor devuelto
Ejemplos
Obtención del estado de sesión
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
Renueve el bloqueo de sesión.
Esta operación se debe realizar periódicamente para conservar un bloqueo en la sesión para continuar con el procesamiento de mensajes.
Una vez que se pierda el bloqueo, se cerrará la conexión; No se puede renovar un bloqueo expirado.
Esta operación también se puede realizar como una tarea en segundo plano en subproceso mediante el registro de la sesión con una instancia de azure.servicebus.aio.AutoLockRenewer .
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parámetros
Tiempo de espera total de la operación en segundos, incluidos todos los reintentos. El valor debe ser mayor que 0 si se especifica. El valor predeterminado es None, lo que significa que no hay tiempo de espera.
Devoluciones
Fecha y hora utc en la que se establece el bloqueo para que expire en .
Tipo de valor devuelto
Ejemplos
Renovación del bloqueo de sesión antes de que expire
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
Establezca el estado de sesión.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parámetros
Tiempo de espera total de la operación en segundos, incluidos todos los reintentos. El valor debe ser mayor que 0 si se especifica. El valor predeterminado es None, lo que significa que no hay tiempo de espera.
Devoluciones
Respuesta de devolución de llamada
Tipo de valor devuelto
Ejemplos
Establecimiento del estado de sesión
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")
Atributos
locked_until_utc
session_id
Azure SDK for Python