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


       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

timeout
Optional[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


       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

timeout
Optional[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


       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

state
str lub bytes lub bytearray lub None
Wymagane

Wartość stanu.

timeout
float lub None

Łą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

any

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

Czas wygaśnięcia blokady tej sesji.

Typ zwracany

session_id

Identyfikator sesji bieżącej sesji.

Typ zwracany

str