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.BaseSessionServiceBusSession
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
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
session_id
Azure SDK for Python
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla