Compartilhar via


CancellableAsyncLock interface

CancellableAsyncLock fornece um mecanismo para forçar tarefas que usam a mesma "chave" a serem executadas em série. Tarefas pendentes podem ser canceladas manualmente por meio de um abortSignal ou canceladas automaticamente, atingindo um valor de tempo limite fornecido.

Métodos

acquire<T>(string, (args: any[]) => Promise<T>, AcquireLockProperties)

Retorna uma promessa que é resolvida para o valor retornado pela função de tarefa fornecida. Somente uma tarefa pode ser invocada por vez para um determinado key valor. Uma chamada de aquisição pode ser cancelada por meio de um abortSignal. Se cancelada, a promessa será rejeitada com um AbortError.

acquireTimeoutInMs também pode ser fornecido para propriedades. Se o tempo limite for atingido antes que o fornecido task seja invocado, a promessa será rejeitada com um Erro informando que a tarefa atingiu o tempo limite aguardando para adquirir um bloqueio.

Detalhes do método

acquire<T>(string, (args: any[]) => Promise<T>, AcquireLockProperties)

Retorna uma promessa que é resolvida para o valor retornado pela função de tarefa fornecida. Somente uma tarefa pode ser invocada por vez para um determinado key valor. Uma chamada de aquisição pode ser cancelada por meio de um abortSignal. Se cancelada, a promessa será rejeitada com um AbortError.

acquireTimeoutInMs também pode ser fornecido para propriedades. Se o tempo limite for atingido antes que o fornecido task seja invocado, a promessa será rejeitada com um Erro informando que a tarefa atingiu o tempo limite aguardando para 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 ser invocada depois que o bloqueio for adquirido.

properties
AcquireLockProperties

Propriedades adicionais para controlar o comportamento de acquire.

Retornos

Promise<T>