ServiceBusSession Klasa

Usługa ServiceBusSession służy do zarządzania stanami sesji i odnawiania blokady.

Użyj właściwości session w obiekcie ServiceBusReceiver, aby uzyskać odpowiedni obiekt ServiceBusSession połączony z odbiornikiem zamiast bezpośrednio utworzyć wystąpienie obiektu ServiceBusSession.

Dziedziczenie
azure.servicebus._servicebus_session.BaseSession
ServiceBusSession

Konstruktor

ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)

Parametry

session_id
receiver

Przykłady

Pobieranie sesji z odbiornika


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session

Zmienne

auto_renew_error
<xref:azure.servicebus.AutoLockRenewTimeout> lub <xref:azure.servicebus.AutoLockRenewFailed>

Błąd podczas użycia funkcji AutoLockRenewer i nie można odnowić blokady sesji.

Metody

get_state

Uzyskaj stan sesji.

Zwraca wartość Brak, jeśli nie ustawiono żadnego stanu.

renew_lock

Odnów blokadę sesji.

Ta operacja musi być wykonywana okresowo, aby zachować blokadę w sesji w celu kontynuowania przetwarzania komunikatów.

Po utracie blokady połączenie zostanie zamknięte; Nie można odnowić wygasłej blokady.

Tę operację można również wykonać jako wątek zadania w tle, rejestrując sesję w wystąpieniu azure.servicebus.AutoLockRenewer .

set_state

Ustaw stan sesji.

get_state

Uzyskaj stan sesji.

Zwraca wartość Brak, jeśli nie ustawiono żadnego stanu.

get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes

Parametry

timeout
float

Łączny limit czasu operacji w sekundach, łącznie ze wszystkimi ponownych próbami. Wartość musi być większa niż 0, jeśli zostanie określona. Wartość domyślna to None, co oznacza brak limitu czasu.

Zwraca

Stan sesji.

Typ zwracany

Przykłady

Uzyskiwanie stanu sesji


       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

Odnów blokadę sesji.

Ta operacja musi być wykonywana okresowo, aby zachować blokadę w sesji w celu kontynuowania przetwarzania komunikatów.

Po utracie blokady połączenie zostanie zamknięte; Nie można odnowić wygasłej blokady.

Tę operację można również wykonać jako wątek zadania w tle, rejestrując sesję w wystąpieniu azure.servicebus.AutoLockRenewer .

renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime

Parametry

timeout
float

Łączny limit czasu operacji w sekundach, łącznie ze wszystkimi ponownych próbami. Wartość musi być większa niż 0, jeśli zostanie określona. Wartość domyślna to None, co oznacza brak limitu czasu.

Zwraca

Data i godzina utc ustawienia blokady wygasają o godzinie.

Typ zwracany

Przykłady

Odnawianie blokady sesji przed wygaśnięciem


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           session.renew_lock()

set_state

Ustaw stan sesji.

set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None

Parametry

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

Wartość stanu. Ustawienie stanu na None spowoduje wyczyszczenie bieżącej sesji.

timeout
float

Łączny limit czasu operacji w sekundach, łącznie ze wszystkimi ponownych próbami. Wartość musi być większa niż 0, jeśli zostanie określona. Wartość domyślna to None, co oznacza brak limitu czasu.

Zwraca

Brak

Typ zwracany

Przykłady

Ustawianie stanu sesji


       with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           session.set_state("START")

Atrybuty

locked_until_utc

Czas wygaśnięcia blokady tej sesji.

Typ zwracany

session_id

Identyfikator sesji bieżącej sesji.

Typ zwracany

str