Delen via


AutoLockRenewer Klas

Automatisch verlengen vergrendelt berichten en sessies met behulp van een achtergrondthreadgroep.

Automatisch verlengen vergrendelt berichten en sessies met behulp van een achtergrondthreadgroep. Het wordt aanbevolen max_worker in te stellen op een groot aantal of ThreadPoolExecutor van een groot max_workers getal door te geven wanneer AutoLockRenewer meerdere berichten of sessies tegelijk moet verwerken.

Overname
builtins.object
AutoLockRenewer

Constructor

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

Parameters

Name Description
max_lock_renewal_duration

Een tijd in seconden waarin vergrendelingen die zijn geregistreerd voor deze vernieuwer, moeten worden gehandhaafd. De standaardwaarde is 300 (5 minuten).

Default value: 300
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Een callback kan worden opgegeven om te worden aangeroepen wanneer de vergrendeling is verloren op de hernieuwbare energie die wordt geregistreerd. De standaardwaarde is Geen (geen callback).

Default value: None
executor

Een door de gebruiker opgegeven threadgroep. Dit kan niet worden gecombineerd met het instellen van max_workers.

Default value: None
max_workers

Geef het maximum aantal werkrollen in de threadgroep op. Als dit niet wordt opgegeven, wordt het gebruikte aantal afgeleid van het aantal kernen van de omgeving. Dit kan niet worden gecombineerd met de uitvoerder.

Default value: None
max_lock_renewal_duration
Vereist

Een tijd in seconden waarin vergrendelingen die zijn geregistreerd voor deze vernieuwer, moeten worden gehandhaafd. De standaardwaarde is 300 (5 minuten).

on_lock_renew_failure
Vereist
Optional[<xref:LockRenewFailureCallback>]

Een callback kan worden opgegeven om te worden aangeroepen wanneer de vergrendeling is verloren op de hernieuwbare energie die wordt geregistreerd. De standaardwaarde is Geen (geen callback).

executor
Vereist

Een door de gebruiker opgegeven threadgroep. Dit kan niet worden gecombineerd met het instellen van max_workers.

max_workers
Vereist

Geef het maximum aantal werkrollen in de threadgroep op. Als dit niet wordt opgegeven, wordt het gebruikte aantal afgeleid van het aantal kernen van de omgeving. Dit kan niet worden gecombineerd met de uitvoerder.

Voorbeelden

Een berichtvergrendeling automatisch vernieuwen


   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)

Een sessievergrendeling automatisch vernieuwen


       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

Stop automatisch verlengen door de threadgroep af te sluiten om eventuele resterende threads voor het verlengen van vergrendelingen op te schonen.

register

Registreer een hernieuwbare entiteit voor automatische verlenging van vergrendelingen.

close

Stop automatisch verlengen door de threadgroep af te sluiten om eventuele resterende threads voor het verlengen van vergrendelingen op te schonen.

close(wait: bool = True) -> None

Parameters

Name Description
wait

Of u wilt blokkeren totdat de threadpool is afgesloten. De standaardwaarde is True.

Default value: True

Retouren

Type Description

register

Registreer een hernieuwbare entiteit voor automatische verlenging van vergrendelingen.

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

Parameters

Name Description
receiver
Vereist

Het ServiceBusReceiver-exemplaar dat is gekoppeld aan het bericht of de sessie die automatisch moet worden vernieuwd.

renewable
Vereist

Een vergrendelde entiteit die moet worden vernieuwd.

max_lock_renewal_duration

Een tijd in seconden waarvoor de vergrendeling moet worden gehandhaafd. De standaardwaarde is Geen. Indien opgegeven, overschrijft deze waarde de standaardwaarde die is opgegeven in de constructor.

Default value: None
on_lock_renew_failure
Optional[<xref:LockRenewFailureCallback>]

Een callback kan worden opgegeven om te worden aangeroepen wanneer de vergrendeling is verloren op de hernieuwbare energie die wordt geregistreerd. De standaardwaarde is Geen (geen callback).

Default value: None

Retouren

Type Description