ServiceBusSession Klasse
Die ServiceBusSession wird zum Verwalten von Sitzungszuständen und zur Verlängerung der Sperre verwendet.
Verwenden Sie die -Eigenschaft session
für den ServiceBusReceiver, um das entsprechende ServiceBusSession-Objekt abzurufen, das mit dem Empfänger verknüpft ist, anstatt ein ServiceBusSession-Objekt direkt zu instanziieren.
- Vererbung
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
Konstruktor
ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)
Parameter
- session_id
- receiver
Beispiele
Sitzung von einem Empfänger abrufen
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Methoden
get_state |
Rufen Sie den Sitzungsstatus ab. Gibt None zurück, wenn kein Zustand festgelegt wurde. |
renew_lock |
Verlängern Sie die Sitzungssperre. Dieser Vorgang muss in regelmäßigen Abständen ausgeführt werden, um eine Sperre für die Sitzung beizubehalten, um die Nachrichtenverarbeitung fortzusetzen. Sobald die Sperre verloren gegangen ist, wird die Verbindung geschlossen. eine abgelaufene Sperre kann nicht verlängert werden. Dieser Vorgang kann auch als Hintergrundaufgabe im Thread ausgeführt werden, indem die Sitzung bei einer azure.servicebus.aio.AutoLockRenewer-instance registriert wird. |
set_state |
Legen Sie den Sitzungsstatus fest. |
get_state
Rufen Sie den Sitzungsstatus ab.
Gibt None zurück, wenn kein Zustand festgelegt wurde.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parameter
Das gesamte Vorgangstimeout in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben ist. Der Standardwert ist None, d. h. kein Timeout.
Gibt zurück
Der Sitzungsstatus.
Rückgabetyp
Beispiele
Abrufen des Sitzungszustands
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
Verlängern Sie die Sitzungssperre.
Dieser Vorgang muss in regelmäßigen Abständen ausgeführt werden, um eine Sperre für die Sitzung beizubehalten, um die Nachrichtenverarbeitung fortzusetzen.
Sobald die Sperre verloren gegangen ist, wird die Verbindung geschlossen. eine abgelaufene Sperre kann nicht verlängert werden.
Dieser Vorgang kann auch als Hintergrundaufgabe im Thread ausgeführt werden, indem die Sitzung bei einer azure.servicebus.aio.AutoLockRenewer-instance registriert wird.
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parameter
Das gesamte Vorgangstimeout in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben ist. Der Standardwert ist None, d. h. kein Timeout.
Gibt zurück
Die utc datetime, bei der die Sperre abläuft.
Rückgabetyp
Beispiele
Verlängern der Sitzungssperre, bevor sie abläuft
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
Legen Sie den Sitzungsstatus fest.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parameter
Das gesamte Vorgangstimeout in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben ist. Der Standardwert ist None, d. h. kein Timeout.
Gibt zurück
Antwort auf Rückruf
Rückgabetyp
Beispiele
Festlegen des Sitzungsstatus
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")
Attribute
locked_until_utc
session_id
Azure SDK for Python