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