Partager via


AutoLockRenewer Classe

Renouvellement automatique des verrous pour les messages et les sessions à l’aide d’un pool de threads d’arrière-plan.

Renouvellement automatique des verrous pour les messages et les sessions à l’aide d’un pool de threads d’arrière-plan. Il est recommandé de définir max_worker sur un grand nombre ou de transmettre ThreadPoolExecutor de grand max_workers nombre lorsque AutoLockRenewer est censé traiter plusieurs messages ou sessions simultanément.

Héritage
builtins.object
AutoLockRenewer

Constructeur

AutoLockRenewer(max_lock_renewal_duration: float = 300, on_lock_renew_failure: LockRenewFailureCallback | None = None, executor: ThreadPoolExecutor | None = None, max_workers: int | None = None)

Paramètres

Nom Description
max_lock_renewal_duration

Durée en secondes pendant laquelle les verrous inscrits auprès de ce renouvellement doivent être conservés pour. La valeur par défaut est 300 (5 minutes).

valeur par défaut: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Un rappel peut être spécifié pour être appelé lorsque le verrou est perdu sur le renouvelable en cours d’inscription. La valeur par défaut est None (aucun rappel).

valeur par défaut: None
executor

Pool de threads spécifié par l’utilisateur. Cela ne peut pas être combiné avec le paramètre max_workers.

valeur par défaut: None
max_workers

Spécifiez le nombre maximal de workers dans le pool de threads. S’il n’est pas spécifié, le nombre utilisé est dérivé du nombre de cœurs de l’environnement. Cela ne peut pas être combiné avec l’exécuteur.

valeur par défaut: None
max_lock_renewal_duration
Obligatoire

Durée en secondes pendant laquelle les verrous inscrits auprès de ce renouvellement doivent être conservés pour. La valeur par défaut est 300 (5 minutes).

on_lock_renew_failure
Obligatoire
Optional[<xref:LockRenewFailureCallback>]

Un rappel peut être spécifié pour être appelé lorsque le verrou est perdu sur le renouvelable en cours d’inscription. La valeur par défaut est None (aucun rappel).

executor
Obligatoire

Pool de threads spécifié par l’utilisateur. Cela ne peut pas être combiné avec le paramètre max_workers.

max_workers
Obligatoire

Spécifiez le nombre maximal de workers dans le pool de threads. S’il n’est pas spécifié, le nombre utilisé est dérivé du nombre de cœurs de l’environnement. Cela ne peut pas être combiné avec l’exécuteur.

Exemples

Renouveler automatiquement un verrou de message


   from azure.servicebus import AutoLockRenewer
   lock_renewal = AutoLockRenewer(max_workers=4)
   with servicebus_receiver:
       for message in servicebus_receiver:
           # Auto renew message for 1 minute.
           lock_renewal.register(servicebus_receiver, message, max_lock_renewal_duration=60)
           process_message(message)
           servicebus_receiver.complete_message(message)

Renouveler automatiquement un verrou de session


       from azure.servicebus import AutoLockRenewer

       lock_renewal = AutoLockRenewer(max_workers=4)
       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)
           for message in receiver:
               process_message(message)
               receiver.complete_message(message)

Méthodes

close

Arrêtez le renouvellement automatique en arrêtant le pool de threads pour propre tous les threads de renouvellement de verrou restants.

register

Inscrire une entité renouvelable pour le renouvellement automatique de verrou.

close

Arrêtez le renouvellement automatique en arrêtant le pool de threads pour propre tous les threads de renouvellement de verrou restants.

close(wait: bool = True) -> None

Paramètres

Nom Description
wait

Indique s’il faut bloquer jusqu’à l’arrêt du pool de threads. La valeur par défaut est True.

valeur par défaut: True

Retours

Type Description

register

Inscrire une entité renouvelable pour le renouvellement automatique de verrou.

register(receiver: ServiceBusReceiver, renewable: ServiceBusReceivedMessage | ServiceBusSession, max_lock_renewal_duration: float | None = None, on_lock_renew_failure: LockRenewFailureCallback | None = None) -> None

Paramètres

Nom Description
receiver
Obligatoire

Le ServiceBusReceiver instance associé au message ou à la session à verrouiller automatiquement.

renewable
Obligatoire

Entité verrouillée qui doit être renouvelée.

max_lock_renewal_duration

Durée en secondes pendant laquelle le verrou doit être maintenu. La valeur par défaut est Aucun. Si elle est spécifiée, cette valeur remplace la valeur par défaut spécifiée au niveau du constructeur.

valeur par défaut: None
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Un rappel peut être spécifié pour être appelé lorsque le verrou est perdu sur le renouvelable en cours d’inscription. La valeur par défaut est None (aucun rappel).

valeur par défaut: None

Retours

Type Description