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
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
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
session_id
Azure SDK for Python