Partilhar via


AutoLockRenewer Classe

Renovação automática de bloqueios para mensagens e sessões com um conjunto de threads de fundo.

Renovação automática de bloqueios para mensagens e sessões com um conjunto de threads de fundo. Recomenda-se definir max_worker para um grande número ou transmitir ThreadPoolExecutor de grande número de max_workers quando AutoLockRenewer é suposto lidar com várias mensagens ou sessões em simultâneo.

Herança
builtins.object
AutoLockRenewer

Construtor

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

Parâmetros

Name Description
max_lock_renewal_duration

Deve manter-se um tempo em segundos para o qual os bloqueios registados neste renovador devem ser mantidos. O valor predefinido é 300 (5 minutos).

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

Pode ser especificada uma chamada de retorno para ser chamada quando o bloqueio é perdido na fonte renovável que está a ser registada. O valor predefinido é Nenhum (sem chamada de retorno).

Default value: None
executor

Um conjunto de threads especificado pelo utilizador. Isto não pode ser combinado com a definição max_workers.

Default value: None
max_workers

Especifique os trabalhos máximos no conjunto de threads. Se não for especificado, o número utilizado será derivado da contagem de núcleos do ambiente. Isto não pode ser combinado com o executor.

Default value: None
max_lock_renewal_duration
Necessário

Deve manter-se um tempo em segundos para o qual os bloqueios registados neste renovador devem ser mantidos. O valor predefinido é 300 (5 minutos).

on_lock_renew_failure
Necessário
Optional[<xref:LockRenewFailureCallback>]

Pode ser especificada uma chamada de retorno para ser chamada quando o bloqueio é perdido na fonte renovável que está a ser registada. O valor predefinido é Nenhum (sem chamada de retorno).

executor
Necessário

Um conjunto de threads especificado pelo utilizador. Isto não pode ser combinado com a definição max_workers.

max_workers
Necessário

Especifique os trabalhos máximos no conjunto de threads. Se não for especificado, o número utilizado será derivado da contagem de núcleos do ambiente. Isto não pode ser combinado com o executor.

Exemplos

Renovar automaticamente um bloqueio de mensagem


   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)

Renovar automaticamente um bloqueio de sessão


       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)

Métodos

close

Cesse a autorenewal encerrando o conjunto de threads para limpar quaisquer threads de renovação de bloqueio restantes.

register

Registar uma entidade renovável para renovação automática de bloqueio.

close

Cesse a autorenewal encerrando o conjunto de threads para limpar quaisquer threads de renovação de bloqueio restantes.

close(wait: bool = True) -> None

Parâmetros

Name Description
wait

Quer bloquear até que o conjunto de threads seja encerrado. A predefinição é Verdadeiro.

Default value: True

Devoluções

Tipo Description

register

Registar uma entidade renovável para renovação automática de bloqueio.

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

Parâmetros

Name Description
receiver
Necessário

A instância do ServiceBusReceiver que está associada à mensagem ou à sessão a renovar automaticamente.

renewable
Necessário

Uma entidade bloqueada que precisa de ser renovada.

max_lock_renewal_duration

Um tempo em segundos para o qual o bloqueio deve ser mantido. O valor predefinido é Nenhum. Se especificado, este valor substituirá o valor predefinido especificado no construtor.

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

Pode ser especificada uma chamada de retorno para ser chamada quando o bloqueio é perdido na fonte renovável que está a ser registada. O valor predefinido é Nenhum (sem chamada de retorno).

Default value: None

Devoluções

Tipo Description