Share via


ServiceBusSession Klass

ServiceBusSession används för att hantera sessionstillstånd och låsa förnyelse.

Använd egenskapen session på ServiceBusReceiver för att hämta motsvarande ServiceBusSession-objekt som är länkat till mottagaren i stället för att instansiera ett ServiceBusSession-objekt direkt.

Arv
azure.servicebus._servicebus_session.BaseSession
ServiceBusSession

Konstruktor

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

Parametrar

session_id
receiver

Exempel

Hämta session från en mottagare


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

Variabler

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

Fel när AutoLockRenewer används och det inte går att förnya sessionslåset.

Metoder

get_state

Hämta sessionstillståndet.

Returnerar Ingen om inget tillstånd har angetts.

renew_lock

Förnya sessionslåset.

Den här åtgärden måste utföras regelbundet för att behålla ett lås på sessionen för att fortsätta bearbetningen av meddelanden.

När låset har förlorats stängs anslutningen. Det går inte att förnya ett utgånget lås.

Den här åtgärden kan också utföras som en trådad bakgrundsaktivitet genom att registrera sessionen med en azure.servicebus.AutoLockRenewer-instans .

set_state

Ange sessionstillstånd.

get_state

Hämta sessionstillståndet.

Returnerar Ingen om inget tillstånd har angetts.

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

Parametrar

timeout
float

Den totala tidsgränsen för åtgärden i sekunder, inklusive alla återförsök. Värdet måste vara större än 0 om det anges. Standardvärdet är Ingen, vilket innebär att tidsgränsen inte nås.

Returer

Sessionstillståndet.

Returtyp

Exempel

Hämta sessionstillståndet


       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

Förnya sessionslåset.

Den här åtgärden måste utföras regelbundet för att behålla ett lås på sessionen för att fortsätta bearbetningen av meddelanden.

När låset har förlorats stängs anslutningen. Det går inte att förnya ett utgånget lås.

Den här åtgärden kan också utföras som en trådad bakgrundsaktivitet genom att registrera sessionen med en azure.servicebus.AutoLockRenewer-instans .

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

Parametrar

timeout
float

Den totala tidsgränsen för åtgärden i sekunder, inklusive alla återförsök. Värdet måste vara större än 0 om det anges. Standardvärdet är Ingen, vilket innebär att tidsgränsen inte nås.

Returer

Utc datetime som låset är inställt på att upphöra att gälla vid.

Returtyp

Exempel

Förnya sessionslåset innan det upphör att gälla


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

set_state

Ange sessionstillstånd.

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

Parametrar

state
Union[str, bytes, bytearray, None]
Obligatorisk

Tillståndsvärdet. Om status anges till Ingen rensas den aktuella sessionen.

timeout
float

Den totala tidsgränsen för åtgärden i sekunder, inklusive alla återförsök. Värdet måste vara större än 0 om det anges. Standardvärdet är Ingen, vilket innebär att tidsgränsen inte nås.

Returer

Ingen

Returtyp

Exempel

Ange sessionstillstånd


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

Attribut

locked_until_utc

Tiden då den här sessionens lås upphör att gälla.

Returtyp

session_id

Sessions-ID för den aktuella sessionen.

Returtyp

str