AutoLockRenewer Classe
Renovar automaticamente bloqueios para mensagens e sessões usando um pool de threads em segundo plano.
Renovar automaticamente bloqueios para mensagens e sessões usando um pool de threads em segundo plano. É recomendável definir max_worker para um número grande ou passar ThreadPoolExecutor de número de max_workers grande quando o AutoLockRenewer deve lidar com várias mensagens ou sessões simultaneamente.
- Herança
-
builtins.objectAutoLockRenewer
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
Nome | Description |
---|---|
max_lock_renewal_duration
|
Um tempo em segundos para o qual os bloqueios registrados nesse renovador devem ser mantidos. O valor padrão é 300 (5 minutos). Valor padrão: 300
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
Um retorno de chamada pode ser especificado para ser chamado quando o bloqueio é perdido na renovável que está sendo registrada. O valor padrão é None (sem retorno de chamada). Valor padrão: None
|
executor
|
Um pool de threads especificado pelo usuário. Isso não pode ser combinado com a configuração max_workers. Valor padrão: None
|
max_workers
|
Especifique o máximo de trabalhos no pool de threads. Se não for especificado, o número usado será derivado da contagem de núcleos do ambiente. Isso não pode ser combinado com executor. Valor padrão: None
|
max_lock_renewal_duration
Obrigatório
|
Um tempo em segundos para o qual os bloqueios registrados nesse renovador devem ser mantidos. O valor padrão é 300 (5 minutos). |
on_lock_renew_failure
Obrigatório
|
Optional[<xref:LockRenewFailureCallback>]
Um retorno de chamada pode ser especificado para ser chamado quando o bloqueio é perdido na renovável que está sendo registrada. O valor padrão é None (sem retorno de chamada). |
executor
Obrigatório
|
Um pool de threads especificado pelo usuário. Isso não pode ser combinado com a configuração max_workers. |
max_workers
Obrigatório
|
Especifique o máximo de trabalhos no pool de threads. Se não for especificado, o número usado será derivado da contagem de núcleos do ambiente. Isso não pode ser combinado com 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 |
Pare a renovação automática desligando o pool de threads para limpo todos os threads de renovação de bloqueio restantes. |
register |
Registre uma entidade renovável para renovação automática de bloqueio. |
close
Pare a renovação automática desligando o pool de threads para limpo todos os threads de renovação de bloqueio restantes.
close(wait: bool = True) -> None
Parâmetros
Nome | Description |
---|---|
wait
|
Se o pool de threads deve ser bloqueado até que o pool de threads seja desligado. O padrão é True. Valor padrão: True
|
Retornos
Tipo | Description |
---|---|
register
Registre 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
Nome | Description |
---|---|
receiver
Obrigatório
|
A instância serviceBusReceiver associada à mensagem ou à sessão a ser renovada automaticamente. |
renewable
Obrigatório
|
Uma entidade bloqueada que precisa ser renovada. |
max_lock_renewal_duration
|
Um tempo em segundos para o qual o bloqueio deve ser mantido. O valor padrão é Nenhum. Se especificado, esse valor substituirá o valor padrão especificado no construtor. Valor padrão: None
|
on_lock_renew_failure
|
Optional[<xref:LockRenewFailureCallback>]
Um retorno de chamada pode ser especificado para ser chamado quando o bloqueio é perdido na renovável que está sendo registrada. O valor padrão é None (sem retorno de chamada). Valor padrão: None
|
Retornos
Tipo | Description |
---|---|
Azure SDK for Python