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.BaseSessionServiceBusSession
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
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
session_id
Azure SDK for Python