Compartilhar via


CancellableAsyncLock interface

CancellableAsyncLock fornece um mecanismo para forçar tarefas usando a mesma "chave" a serem executadas serialmente.

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 valor key.

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 task fornecido seja invocado, a promessa será rejeitada com um erro informando que a tarefa atingiu o tempo limite aguardando a aquisição de 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 valor key.

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 task fornecido seja invocado, a promessa será rejeitada com um erro informando que a tarefa atingiu o tempo limite aguardando a aquisição de um bloqueio.

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

Parâmetros

key

string

Todas as chamadas acquire são agrupadas pelo keyfornecido.

task

(args: any[]) => Promise<T>

A função a ser invocada após a aquisição do bloqueio.

properties
AcquireLockProperties

Propriedades adicionais para controlar o comportamento de acquire.

Retornos

Promise<T>