Freigeben über


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.BaseSession
ServiceBusSession

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

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

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

Der Zeitpunkt, zu dem die Sperre dieser Sitzung abläuft.

Rückgabetyp

session_id

Sitzungs-ID der aktuellen Sitzung.

Rückgabetyp

str