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.objectAutoLockRenewer
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 |
---|---|
Azure SDK for Python