Share via


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


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session

Variables

auto_renew_error
<xref:azure.servicebus.AutoLockRenewTimeout> o <xref:azure.servicebus.AutoLockRenewFailed>

Error cuando se usa AutoLockRenewer y no se puede renovar el bloqueo de sesión.

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 registrando la sesión con una instancia de azure.servicebus.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.

get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes

Parámetros

timeout
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


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           session_state = 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 registrando la sesión con una instancia de azure.servicebus.AutoLockRenewer .

renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime

Parámetros

timeout
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


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           session.renew_lock()

set_state

Establezca el estado de sesión.

set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None

Parámetros

state
Union[str, bytes, bytearray, None]
Requerido

Valor de estado. Al establecer el estado en Ninguno, se borrará la sesión actual.

timeout
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

Ninguno

Tipo de valor devuelto

Ejemplos

Establecimiento del estado de sesión


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           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