Partager via


ServiceBusSession Classe

ServiceBusSession est utilisé pour gérer les états de session et le renouvellement des verrous.

Utilisez la propriété session sur le ServiceBusReceiver pour obtenir l’objet ServiceBusSession correspondant lié au récepteur au lieu d’instancier directement un objet ServiceBusSession.

Héritage
azure.servicebus._servicebus_session.BaseSession
ServiceBusSession

Constructeur

ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)

Paramètres

session_id
receiver

Exemples

Obtenir une session à partir d’un récepteur


       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> ou <xref:azure.servicebus.AutoLockRenewFailed>

Erreur quand AutoLockRenewer est utilisé et qu’il ne parvient pas à renouveler le verrou de session.

Méthodes

get_state

Obtenez l’état de la session.

Retourne Aucun si aucun état n’a été défini.

renew_lock

Renouvelez le verrou de session.

Cette opération doit être effectuée régulièrement afin de conserver un verrou sur la session afin de poursuivre le traitement des messages.

Une fois le verrou perdu, la connexion est fermée ; Un verrou expiré ne peut pas être renouvelé.

Cette opération peut également être effectuée en tant que tâche threaded en arrière-plan en inscrivant la session auprès d’un instance azure.servicebus.AutoLockRenewer.

set_state

Définissez l’état de la session.

get_state

Obtenez l’état de la session.

Retourne Aucun si aucun état n’a été défini.

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

Paramètres

timeout
float

Délai d’expiration total de l’opération en secondes, y compris toutes les nouvelles tentatives. La valeur doit être supérieure à 0 si elle est spécifiée. La valeur par défaut est None, c’est-à-dire aucun délai d’expiration.

Retours

État de session.

Type de retour

Exemples

Obtenir l’état de la session


       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

Renouvelez le verrou de session.

Cette opération doit être effectuée régulièrement afin de conserver un verrou sur la session afin de poursuivre le traitement des messages.

Une fois le verrou perdu, la connexion est fermée ; Un verrou expiré ne peut pas être renouvelé.

Cette opération peut également être effectuée en tant que tâche threaded en arrière-plan en inscrivant la session auprès d’un instance azure.servicebus.AutoLockRenewer.

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

Paramètres

timeout
float

Délai d’expiration total de l’opération en secondes, y compris toutes les nouvelles tentatives. La valeur doit être supérieure à 0 si elle est spécifiée. La valeur par défaut est None, c’est-à-dire aucun délai d’expiration.

Retours

Date utcheure à laquelle le verrou est défini pour expirer.

Type de retour

Exemples

Renouveler le verrou de session avant son expiration


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

set_state

Définissez l’état de la session.

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

Paramètres

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

Valeur d’état. La définition de l’état sur Aucun efface la session active.

timeout
float

Délai d’expiration total de l’opération en secondes, y compris toutes les nouvelles tentatives. La valeur doit être supérieure à 0 si elle est spécifiée. La valeur par défaut est None, c’est-à-dire aucun délai d’expiration.

Retours

Aucun

Type de retour

Exemples

Définir l’état de session


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

Attributs

locked_until_utc

Heure à laquelle le verrou de cette session expire.

Type de retour

session_id

ID de session de la session active.

Type de retour

str