AutoLockRenewer Klasse
Automatische Sperrverlängerung.
Ein asynchroner AutoLockRenewer-Handler zum Erneuern der Sperrtoken von Nachrichten und/oder Sitzungen im Hintergrund.
- Vererbung
-
builtins.objectAutoLockRenewer
Konstruktor
AutoLockRenewer(max_lock_renewal_duration: float = 300, on_lock_renew_failure: Callable[[ServiceBusSession | ServiceBusReceivedMessage, Exception | None], Awaitable[None]] | None = None, loop: AbstractEventLoop | 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
|
loop
|
Standardwert: None
|
Beispiele
Automatisches Verlängern einer Nachrichtensperre
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)
Automatisches Verlängern einer Sitzungssperre
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)
Methoden
close |
Beenden Sie den Autorenewal, indem Sie alle verbleibenden offenen Verlängerungs-Futures für sperren. |
register |
Registrieren Sie eine erneuerbare Entität für die automatische Verlängerung der Sperre. |
close
Beenden Sie den Autorenewal, indem Sie alle verbleibenden offenen Verlängerungs-Futures für sperren.
async close() -> None
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: Callable[[ServiceBusSession | ServiceBusReceivedMessage, Exception | None], Awaitable[None]] | 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
|
Union[<xref:azure.servicebus.aio.ServiceBusReceivedMessage>,ServiceBusSession]
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:AsyncLockRenewFailureCallback>]
Ein asynchroner Rückruf kann so angegeben werden, dass er aufgerufen wird, wenn die Sperre für die zu registrierende Erneuerbare verloren geht. Der Standardwert ist None (kein Rückruf). :rtype: Keine Standardwert: None
|
Azure SDK for Python