CancellableAsyncLock interface
CancellableAsyncLock fornece um mecanismo para forçar tarefas com a mesma "chave" a ser executada em série. As tarefas pendentes podem ser canceladas manualmente através de um abortSignal ou automaticamente canceladas ao atingir um valor de tempo limite fornecido.
Métodos
acquire<T>(string, (args: any[]) => Promise<T>, Acquire |
Devolve uma promessa que é resolvida para o valor devolvido pela função de tarefa fornecida.
Apenas uma tarefa pode ser invocada de cada vez para um determinado
|
Detalhes de Método
acquire<T>(string, (args: any[]) => Promise<T>, AcquireLockProperties)
Devolve uma promessa que é resolvida para o valor devolvido pela função de tarefa fornecida.
Apenas uma tarefa pode ser invocada de cada vez para um determinado key
valor.
Uma chamada de aquisição pode ser cancelada através de um abortSignal
.
Se for cancelada, a promessa será rejeitada com um AbortError
.
acquireTimeoutInMs
também pode ser fornecido às propriedades.
Se o tempo limite for atingido antes de o fornecido task
ser invocado, a promessa será rejeitada com um Erro a indicar que a tarefa excedeu o tempo limite à espera de adquirir um bloqueio.
function acquire<T>(key: string, task: (args: any[]) => Promise<T>, properties: AcquireLockProperties): Promise<T>
Parâmetros
- key
-
string
Todas as acquire
chamadas são agrupadas pelo fornecido key
.
- task
-
(args: any[]) => Promise<T>
A função a invocar depois de o bloqueio ter sido adquirido.
- properties
- AcquireLockProperties
Propriedades adicionais para controlar o comportamento de acquire
.
Devoluções
Promise<T>