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
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
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.aio.AutoLockRenewer . |
set_state |
Ustaw stan sesji. |
get_state
Uzyskaj stan sesji.
Zwraca wartość Brak, jeśli nie ustawiono żadnego stanu.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parametry
Łą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
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
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.aio.AutoLockRenewer .
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parametry
Łą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
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
Ustaw stan sesji.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parametry
Łą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
Odpowiedź na wywołanie zwrotne
Typ zwracany
Przykłady
Ustawianie stanu sesji
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")
Atrybuty
locked_until_utc
session_id
Azure SDK for Python