Megosztás a következőn keresztül:


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.BaseSession
ServiceBusSession

Konstruktor

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

Paraméterek

session_id
receiver

Példák

Munkamenet lekérése fogadóból


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

Változók

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

Hiba az AutoLockRenewer használatakor, és nem tudja megújítani a munkamenet-zárolást.

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álalapú háttérfeladatként is végrehajtható, ha regisztrálja a munkamenetet egy azure.servicebus.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.

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

Paraméterek

timeout
float

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


       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

Ú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álalapú háttérfeladatként is végrehajtható, ha regisztrálja a munkamenetet egy azure.servicebus.AutoLockRenewer-példányban .

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

Paraméterek

timeout
float

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


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

set_state

Állítsa be a munkamenet állapotát.

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

Paraméterek

state
Union[str, bytes, bytearray, None]
Kötelező

Az állapotérték. Ha a Nincs értékre állítja az állapotot, az törli az aktuális munkamenetet.

timeout
float

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

None

Visszatérési típus

Példák

A munkamenet állapotának beállítása


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

Attribútumok

locked_until_utc

Az az időpont, amikor a munkamenet zárolása lejár.

Visszatérési típus

session_id

Az aktuális munkamenet munkamenet-azonosítója.

Visszatérési típus

str