ServiceBusSession Classe
ServiceBusSession viene usato per gestire gli stati della sessione e il rinnovo del blocco.
Utilizzare la proprietà session
in ServiceBusReceiver per ottenere l'oggetto ServiceBusSession corrispondente collegato al ricevitore anziché creare direttamente un'istanza di un oggetto ServiceBusSession.
- Ereditarietà
-
azure.servicebus._servicebus_session.BaseSessionServiceBusSession
Costruttore
ServiceBusSession(session_id: str, receiver: ServiceBusReceiver | ServiceBusReceiverAsync)
Parametri
- session_id
- receiver
Esempio
Ottenere una sessione da un ricevitore
async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
session = receiver.session
Metodi
get_state |
Ottiene lo stato della sessione. Restituisce Nessuno se non è stato impostato alcuno stato. |
renew_lock |
Rinnovare il blocco della sessione. Questa operazione deve essere eseguita periodicamente per mantenere un blocco nella sessione per continuare l'elaborazione dei messaggi. Una volta che il blocco viene perso, la connessione verrà chiusa; Non è possibile rinnovare un blocco scaduto. Questa operazione può essere eseguita anche come attività in background threading registrando la sessione con un'istanza di azure.servicebus.aio.AutoLockRenewer . |
set_state |
Impostare lo stato della sessione. |
get_state
Ottiene lo stato della sessione.
Restituisce Nessuno se non è stato impostato alcuno stato.
async get_state(*, timeout: float | None = None, **kwargs: Any) -> bytes
Parametri
Timeout totale dell'operazione in secondi, inclusi tutti i tentativi. Se specificato, il valore deve essere maggiore di 0. Il valore predefinito è None, ovvero nessun timeout.
Restituisce
Stato della sessione.
Tipo restituito
Esempio
Ottenere lo stato della sessione
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
Rinnovare il blocco della sessione.
Questa operazione deve essere eseguita periodicamente per mantenere un blocco nella sessione per continuare l'elaborazione dei messaggi.
Una volta che il blocco viene perso, la connessione verrà chiusa; Non è possibile rinnovare un blocco scaduto.
Questa operazione può essere eseguita anche come attività in background threading registrando la sessione con un'istanza di azure.servicebus.aio.AutoLockRenewer .
async renew_lock(*, timeout: float | None = None, **kwargs: Any) -> datetime
Parametri
Timeout totale dell'operazione in secondi, inclusi tutti i tentativi. Se specificato, il valore deve essere maggiore di 0. Il valore predefinito è None, ovvero nessun timeout.
Restituisce
Il valore utc datetime al quale il blocco è impostato per scadere.
Tipo restituito
Esempio
Rinnovare il blocco della sessione prima della scadenza
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
Impostare lo stato della sessione.
async set_state(state: str | bytes | bytearray | None, *, timeout: float | None = None, **kwargs: Any) -> None
Parametri
Timeout totale dell'operazione in secondi, inclusi tutti i tentativi. Se specificato, il valore deve essere maggiore di 0. Il valore predefinito è None, ovvero nessun timeout.
Restituisce
Risposta del callback
Tipo restituito
Esempio
Impostare lo stato della sessione
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")
Attributi
locked_until_utc
session_id
Azure SDK for Python
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per