Freigeben über


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

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

timeout
Optional[float]

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

timeout
Optional[float]

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

state
str oder bytes oder bytearray oder None
Erforderlich

Der Zustandswert.

timeout
float oder None

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

any

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

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

Rückgabetyp

session_id

Sitzungs-ID der aktuellen Sitzung.

Rückgabetyp

str