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 un objet ServiceBusSession directement.
- 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
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Méthodes
get_state |
Obtenez l’état de 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 en arrière-plan thread en inscrivant la session auprès d’un instance azure.servicebus.aio.AutoLockRenewer. |
set_state |
Définissez l’état de la session. |
get_state
Obtenez l’état de session.
Retourne Aucun si aucun état n’a été défini.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Paramètres
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’attente.
Retours
État de session.
Type de retour
Exemples
Obtenir l’état de session
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
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 en arrière-plan thread en inscrivant la session auprès d’un instance azure.servicebus.aio.AutoLockRenewer.
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Paramètres
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’attente.
Retours
Dateheure utc à laquelle le verrou est défini pour expirer.
Type de retour
Exemples
Renouveler le verrou de session avant son expiration
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
Définissez l’état de la session.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Paramètres
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’attente.
Retours
Réponse de rappel
Type de retour
Exemples
Définir l’état de la session
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")
Attributs
locked_until_utc
session_id
Azure SDK for Python