AutoLockRenewer Klasse

Automatische Sperrverlängerung.

Ein asynchroner AutoLockRenewer-Handler zum Erneuern der Sperrtoken von Nachrichten und/oder Sitzungen im Hintergrund.

Vererbung
builtins.object
AutoLockRenewer

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