Share via


AutoLockRenewer Klass

Automatisk förnyelse av lås för meddelanden och sessioner med hjälp av en bakgrundstrådspool.

Automatisk förnyelse av lås för meddelanden och sessioner med hjälp av en bakgrundstrådspool. Vi rekommenderar att du anger max_worker till ett stort antal eller skickar ThreadPoolExecutor med stort max_workers tal när AutoLockRenewer ska hantera flera meddelanden eller sessioner samtidigt.

Arv
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)

Parametrar

Name Description
max_lock_renewal_duration

En tid i sekunder som låss som registrerats för den här förnyaren bör bibehållas i. Standardvärdet är 300 (5 minuter).

standardvärde: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

En motringning kan anges som anropas när låset går förlorat på den förnybara som registreras. Standardvärdet är Ingen (inget återanrop).

standardvärde: None
executor

En användardefinerad trådpool. Detta kan inte kombineras med inställningen max_workers.

standardvärde: None
max_workers

Ange maximalt antal arbetare i trådpoolen. Om det inte anges härleds antalet som används från kärnantalet i miljön. Detta kan inte kombineras med executor.

standardvärde: None
max_lock_renewal_duration
Obligatorisk

En tid i sekunder som låss som registrerats för den här förnyaren bör bibehållas i. Standardvärdet är 300 (5 minuter).

on_lock_renew_failure
Obligatorisk
Optional[<xref:LockRenewFailureCallback>]

En motringning kan anges som anropas när låset går förlorat på den förnybara som registreras. Standardvärdet är Ingen (inget återanrop).

executor
Obligatorisk

En användardefinerad trådpool. Detta kan inte kombineras med inställningen max_workers.

max_workers
Obligatorisk

Ange maximalt antal arbetare i trådpoolen. Om det inte anges härleds antalet som används från kärnantalet i miljön. Detta kan inte kombineras med executor.

Exempel

Förnya automatiskt ett meddelandelås


   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)

Förnya ett sessionslås automatiskt


       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)

Metoder

close

Avbryt autorenewal genom att stänga av trådpoolen för att rensa eventuella återstående låsförnyelsetrådar.

register

Registrera en förnybar entitet för automatisk förnyelse av lås.

close

Avbryt autorenewal genom att stänga av trådpoolen för att rensa eventuella återstående låsförnyelsetrådar.

close(wait: bool = True) -> None

Parametrar

Name Description
wait

Om du vill blockera tills trådpoolen har stängts av. Standardvärdet är True.

standardvärde: True

Returer

Typ Description

register

Registrera en förnybar entitet för automatisk förnyelse av lås.

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

Parametrar

Name Description
receiver
Obligatorisk

Den ServiceBusReceiver-instans som är associerad med meddelandet eller sessionen som ska låsas automatiskt.

renewable
Obligatorisk

En låst entitet som måste förnyas.

max_lock_renewal_duration

En tid i sekunder som låset ska underhållas för. Standardvärdet är Ingen. Om det här värdet anges åsidosätter det standardvärde som anges i konstruktorn.

standardvärde: None
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

En motringning kan anges som anropas när låset går förlorat på den förnybara som registreras. Standardvärdet är Ingen (inget återanrop).

standardvärde: None

Returer

Typ Description