Condividi tramite


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

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
Optional[float]

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
Optional[float]

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

state
str oppure bytes oppure bytearray oppure None
Necessario

Valore dello stato.

timeout
float oppure None

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

any

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

Ora in cui scadrà il blocco della sessione.

Tipo restituito

session_id

ID sessione della sessione corrente.

Tipo restituito

str