ServiceBusSession Klasse
Die ServiceBusSession wird zum Verwalten von Sitzungszuständen und zur Verlängerung von Sperren verwendet.
Verwenden Sie die -Eigenschaft session
für 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
Abrufen einer Sitzung von einem Empfänger
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Variablen
- auto_renew_error
- <xref:azure.servicebus.AutoLockRenewTimeout> oder <xref:azure.servicebus.AutoLockRenewFailed>
Fehler, wenn AutoLockRenewer verwendet wird und die Sitzungssperre nicht verlängert werden kann.
Methoden
get_state |
Ruft 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 geht, 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 einem azure.servicebus.AutoLockRenewer-instance registriert wird. |
set_state |
Legen Sie den Sitzungsstatus fest. |
get_state
Ruft den Sitzungsstatus ab.
Gibt None zurück, wenn kein Zustand festgelegt wurde.
get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parameter
- timeout
- float
Das Gesamtzeitlimit des Vorgangs in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben wird. Der Standardwert ist None, d. h. kein Timeout.
Gibt zurück
Der Sitzungszustand.
Rückgabetyp
Beispiele
Abrufen des Sitzungszustands
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
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 geht, 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 einem azure.servicebus.AutoLockRenewer-instance registriert wird.
renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parameter
- timeout
- float
Das Gesamtzeitlimit des Vorgangs in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben wird. 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
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session.renew_lock()
set_state
Legen Sie den Sitzungsstatus fest.
set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parameter
Der Zustandswert. Wenn Sie den Status auf Keine festlegen, wird die aktuelle Sitzung gelöscht.
- timeout
- float
Das Gesamtzeitlimit des Vorgangs in Sekunden, einschließlich aller Wiederholungen. Der Wert muss größer als 0 sein, wenn er angegeben wird. Der Standardwert ist None, d. h. kein Timeout.
Gibt zurück
Keine
Rückgabetyp
Beispiele
Festlegen des Sitzungszustands
with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
session.set_state("START")
Attribute
locked_until_utc
session_id
Azure SDK for Python