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
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
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.aio.AutoLockRenewer-instans . |
set_state |
Ange sessionstillstånd. |
get_state
Hämta sessionstillståndet.
Returnerar Ingen om inget tillstånd har angetts.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parametrar
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
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
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.aio.AutoLockRenewer-instans .
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parametrar
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
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
Ange sessionstillstånd.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parametrar
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
Svar på motringning
Returtyp
Exempel
Ange sessionstillstånd
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")
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