ServiceBusSession Osztály
A ServiceBusSession a munkamenet-állapotok kezelésére és a megújítás zárolására szolgál.
A ServiceBusReceiver tulajdonságával session
kérje le a megfelelő ServiceBusSession objektumot a vevővel összekapcsolva ahelyett, hogy közvetlenül példányosítanának egy ServiceBusSession objektumot.
- Öröklődés
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
Konstruktor
ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)
Paraméterek
- session_id
- receiver
Példák
Munkamenet lekérése fogadóból
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Metódusok
get_state |
Kérje le a munkamenet állapotát. Nincs értéket ad vissza, ha nincs beállítva állapot. |
renew_lock |
Újítsa meg a munkamenet-zárolást. Ezt a műveletet rendszeres időközönként végre kell hajtani, hogy megőrizze a munkamenet zárolását az üzenetfeldolgozás folytatásához. A zárolás megszűnése után a kapcsolat lezárul; lejárt zárolást nem lehet megújítani. Ez a művelet szálba rendezett háttérfeladatként is végrehajtható, ha regisztrálja a munkamenetet egy azure.servicebus.aio.AutoLockRenewer-példányban . |
set_state |
Állítsa be a munkamenet állapotát. |
get_state
Kérje le a munkamenet állapotát.
Nincs értéket ad vissza, ha nincs beállítva állapot.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Paraméterek
A művelet teljes időtúllépése másodpercben, beleértve az összes újrapróbálkozási műveletet. Ha meg van adva, az értéknek 0-nál nagyobbnak kell lennie. Az alapértelmezett érték Nincs, ami azt jelenti, hogy nincs időtúllépés.
Válaszok
A munkamenet állapota.
Visszatérési típus
Példák
A munkamenet állapotának lekérése
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
Újítsa meg a munkamenet-zárolást.
Ezt a műveletet rendszeres időközönként végre kell hajtani, hogy megőrizze a munkamenet zárolását az üzenetfeldolgozás folytatásához.
A zárolás megszűnése után a kapcsolat lezárul; lejárt zárolást nem lehet megújítani.
Ez a művelet szálba rendezett háttérfeladatként is végrehajtható, ha regisztrálja a munkamenetet egy azure.servicebus.aio.AutoLockRenewer-példányban .
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Paraméterek
A művelet teljes időtúllépése másodpercben, beleértve az összes újrapróbálkozási műveletet. Ha meg van adva, az értéknek 0-nál nagyobbnak kell lennie. Az alapértelmezett érték Nincs, ami azt jelenti, hogy nincs időtúllépés.
Válaszok
A zárolás utc datetime értéke a következő időpontra van beállítva: .
Visszatérési típus
Példák
A munkamenet-zárolás megújítása a lejárat előtt
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
Állítsa be a munkamenet állapotát.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Paraméterek
A művelet teljes időtúllépése másodpercben, beleértve az összes újrapróbálkozási műveletet. Ha meg van adva, az értéknek 0-nál nagyobbnak kell lennie. Az alapértelmezett érték Nincs, ami azt jelenti, hogy nincs időtúllépés.
Válaszok
Visszahívás válasza
Visszatérési típus
Példák
A munkamenet állapotának beállítása
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")
Attribútumok
locked_until_utc
session_id
Azure SDK for Python