Condividi tramite


AutoLockRenewer Classe

Rinnovo automatico del blocco.

Gestore AutoLockRenewer asincrono per rinnovare i token di blocco dei messaggi e/o delle sessioni in background.

Ereditarietà
builtins.object
AutoLockRenewer

Costruttore

AutoLockRenewer(max_lock_renewal_duration: float = 300, on_lock_renew_failure: Callable[[ServiceBusSession | ServiceBusReceivedMessage, Exception | None], Awaitable[None]] | None = None, loop: AbstractEventLoop | None = None)

Parametri

Nome Descrizione
max_lock_renewal_duration

Tempo in secondi per cui devono essere mantenuti i blocchi registrati per questo rinnovo. Il valore predefinito è 300 (5 minuti).

Valore predefinito: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

È possibile specificare un callback da chiamare quando il blocco viene perso sulle rinnovabili registrate. Il valore predefinito è None (nessun callback).

Valore predefinito: None
loop
Valore predefinito: None

Esempio

Rinnovare automaticamente un blocco di messaggi


   from azure.servicebus.aio import AutoLockRenewer

   lock_renewal = AutoLockRenewer()
   async with servicebus_receiver:
       async for message in servicebus_receiver:
           lock_renewal.register(servicebus_receiver, message, max_lock_renewal_duration=60)
           await process_message(message)
           await servicebus_receiver.complete_message(message)

Rinnovare automaticamente un blocco di sessione


       from azure.servicebus.aio import AutoLockRenewer

       lock_renewal = AutoLockRenewer()
       async with servicebus_client.get_queue_receiver(queue_name=queue_name, session_id=session_id) as receiver:
           session = receiver.session
           # Auto renew session lock for 2 minutes
           lock_renewal.register(receiver, session, max_lock_renewal_duration=120)
           async for message in receiver:
               await process_message(message)
               await receiver.complete_message(message)

Metodi

close

Interrompere l'autorenewal annullando eventuali futuri di rinnovo del blocco aperto rimanenti.

register

Registrare un'entità rinnovabile per il rinnovo automatico del blocco.

close

Interrompere l'autorenewal annullando eventuali futuri di rinnovo del blocco aperto rimanenti.

async close() -> None

register

Registrare un'entità rinnovabile per il rinnovo automatico del blocco.

register(receiver: ServiceBusReceiver, renewable: ServiceBusReceivedMessage | ServiceBusSession, max_lock_renewal_duration: float | None = None, on_lock_renew_failure: Callable[[ServiceBusSession | ServiceBusReceivedMessage, Exception | None], Awaitable[None]] | None = None) -> None

Parametri

Nome Descrizione
receiver
Necessario

Istanza di ServiceBusReceiver associata al messaggio o alla sessione da rinnovare automaticamente.

renewable
Necessario
Union[<xref:azure.servicebus.aio.ServiceBusReceivedMessage>,ServiceBusSession]

Entità bloccata che deve essere rinnovata.

max_lock_renewal_duration

Tempo in secondi per cui deve essere mantenuto il blocco. Il valore predefinito è Nessuno. Se specificato, questo valore eseguirà l'override del valore predefinito specificato nel costruttore.

Valore predefinito: None
on_lock_renew_failure
Optional[<xref:AsyncLockRenewFailureCallback>]

È possibile specificare un callback asincrono da chiamare quando il blocco viene perso sull'oggetto rinnovabile registrato. Il valore predefinito è None (nessun callback). :rtype: Nessuno

Valore predefinito: None