ServiceBusSession Třída

ServiceBusSession se používá ke správě stavů relací a prodlužování uzamčení.

Použijte vlastnost session Na ServiceBusReceiver získat odpovídající ServiceBusSession objekt propojené s příjemcem místo vytvoření instance ServiceBusSession objektu přímo.

Dědičnost
azure.servicebus._servicebus_session.BaseSession
ServiceBusSession

Konstruktor

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

Parametry

session_id
receiver

Příklady

Získání relace od příjemce


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

Proměnné

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

Chyba při použití funkce AutoLockRenewer a nepodaří se obnovit zámek relace.

Metody

get_state

Získejte stav relace.

Vrátí hodnotu Žádný, pokud nebyl nastaven žádný stav.

renew_lock

Obnovte zámek relace.

Tato operace se musí provádět pravidelně, aby se zachoval zámek relace, aby bylo možné pokračovat ve zpracování zpráv.

Po ztrátě zámku bude připojení uzavřeno; zámek, jehož platnost vypršela, nelze obnovit.

Tuto operaci lze také provést jako úlohu na pozadí s vlákny registrací relace v instanci azure.servicebus.AutoLockRenewer .

set_state

Nastavte stav relace.

get_state

Získejte stav relace.

Vrátí hodnotu Žádný, pokud nebyl nastaven žádný stav.

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

Parametry

timeout
float

Celkový časový limit operace v sekundách včetně všech opakování. Hodnota musí být větší než 0, pokud je zadána. Výchozí hodnota je Žádný, což znamená žádný časový limit.

Návraty

Stav relace.

Návratový typ

Příklady

Získání stavu relace


       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

Obnovte zámek relace.

Tato operace se musí provádět pravidelně, aby se zachoval zámek relace, aby bylo možné pokračovat ve zpracování zpráv.

Po ztrátě zámku bude připojení uzavřeno; zámek, jehož platnost vypršela, nelze obnovit.

Tuto operaci lze také provést jako úlohu na pozadí s vlákny registrací relace v instanci azure.servicebus.AutoLockRenewer .

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

Parametry

timeout
float

Celkový časový limit operace v sekundách včetně všech opakování. Hodnota musí být větší než 0, pokud je zadána. Výchozí hodnota je Žádný, což znamená žádný časový limit.

Návraty

Datum UTC a čas, na který je zámek nastavený tak, aby vypršel.

Návratový typ

Příklady

Prodloužení zámku relace před vypršením jeho platnosti


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

set_state

Nastavte stav relace.

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

Parametry

state
Union[str, bytes, bytearray, None]
Vyžadováno

Hodnota stavu. Nastavení stavu na Žádný vymaže aktuální relaci.

timeout
float

Celkový časový limit operace v sekundách včetně všech opakování. Hodnota musí být větší než 0, pokud je zadána. Výchozí hodnota je Žádný, což znamená žádný časový limit.

Návraty

Žádné

Návratový typ

Příklady

Nastavení stavu relace


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

Atributy

locked_until_utc

Čas, kdy vyprší platnost zámku této relace.

Návratový typ

session_id

ID relace aktuální relace.

Návratový typ

str