AutoLockRenewer Klasse

Automatische Verlängerung von Sperren für Nachrichten und Sitzungen mithilfe eines Hintergrundthreadpools.

Automatische Verlängerung von Sperren für Nachrichten und Sitzungen mithilfe eines Hintergrundthreadpools. Es wird empfohlen, max_worker auf eine große Anzahl festzulegen oder ThreadPoolExecutor mit großen max_workers Zahl zu übergeben, wenn AutoLockRenewer mehrere Nachrichten oder Sitzungen gleichzeitig behandeln soll.

Vererbung
builtins.object
AutoLockRenewer

Konstruktor

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

Parameter

Name Beschreibung
max_lock_renewal_duration

Eine Zeit in Sekunden, die für diesen Verlängerungserneuerer registrierte Sperren beibehalten werden sollte. Der Standardwert ist 300 (5 Minuten).

Standardwert: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Ein Rückruf kann so angegeben werden, dass er aufgerufen wird, wenn die Sperre für die zu registrierende erneuerbare Datei verloren geht. Der Standardwert ist None (kein Rückruf).

Standardwert: None
executor

Ein vom Benutzer angegebener Threadpool. Dies kann nicht mit der Einstellung max_workers kombiniert werden.

Standardwert: None
max_workers

Geben Sie die maximale Anzahl von Workern im Threadpool an. Wenn nicht angegeben, wird die verwendete Zahl von der Kernanzahl der Umgebung abgeleitet. Dies kann nicht mit executor kombiniert werden.

Standardwert: None
max_lock_renewal_duration
Erforderlich

Eine Zeit in Sekunden, die für diesen Verlängerungserneuerer registrierte Sperren beibehalten werden sollte. Der Standardwert ist 300 (5 Minuten).

on_lock_renew_failure
Erforderlich
Optional[<xref:LockRenewFailureCallback>]

Ein Rückruf kann so angegeben werden, dass er aufgerufen wird, wenn die Sperre für die zu registrierende erneuerbare Datei verloren geht. Der Standardwert ist None (kein Rückruf).

executor
Erforderlich

Ein vom Benutzer angegebener Threadpool. Dies kann nicht mit der Einstellung max_workers kombiniert werden.

max_workers
Erforderlich

Geben Sie die maximale Anzahl von Workern im Threadpool an. Wenn nicht angegeben, wird die verwendete Zahl von der Kernanzahl der Umgebung abgeleitet. Dies kann nicht mit executor kombiniert werden.

Beispiele

Automatisches Verlängern einer Nachrichtensperre


   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)

Automatisches Verlängern einer Sitzungssperre


       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)

Methoden

close

Beenden Sie autorenewal, indem Sie den Threadpool herunterfahren, um alle verbleibenden Sperrverlängerungsthreads zu sauber.

register

Registrieren Sie eine erneuerbare Entität für die automatische Verlängerung der Sperre.

close

Beenden Sie autorenewal, indem Sie den Threadpool herunterfahren, um alle verbleibenden Sperrverlängerungsthreads zu sauber.

close(wait: bool = True) -> None

Parameter

Name Beschreibung
wait

Gibt an, ob blockiert werden soll, bis der Threadpool heruntergefahren wurde. Der Standardwert ist true.

Standardwert: True

Gibt zurück

Typ Beschreibung

register

Registrieren Sie eine erneuerbare Entität für die automatische Verlängerung der Sperre.

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

Parameter

Name Beschreibung
receiver
Erforderlich

Die ServiceBusReceiver-instance, die der Nachricht oder der Sitzung zugeordnet ist, die automatisch gesperrt werden soll.

renewable
Erforderlich

Eine gesperrte Entität, die erneuert werden muss.

max_lock_renewal_duration

Eine Zeit in Sekunden, für die die Sperre beibehalten werden soll. Der Standardwert ist Keine. Wenn angegeben, überschreibt dieser Wert den Standardwert, der am Konstruktor angegeben ist.

Standardwert: None
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Ein Rückruf kann so angegeben werden, dass er aufgerufen wird, wenn die Sperre für die zu registrierende erneuerbare Datei verloren geht. Der Standardwert ist None (kein Rückruf).

Standardwert: None

Gibt zurück

Typ Beschreibung