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.BaseSessionServiceBusSession
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
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
session_id
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för