Compartir a través de


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.BaseSession
ServiceBusSession

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

timeout
Optional[float]

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

timeout
Optional[float]

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

state
str o bytes o bytearray o None
Requerido

Valor de estado.

timeout
float o None

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

any

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

Hora a la que expirará el bloqueo de esta sesión.

Tipo de valor devuelto

session_id

Identificador de sesión de la sesión actual.

Tipo de valor devuelto

str