Поделиться через


CancellableAsyncLock interface

CancellableAsyncLock предоставляет механизм принудительного выполнения задач с помощью одного и того же ключа, выполняемого последовательно.

Ожидающие задачи можно вручную отменить с помощью прерывания или автоматически отменить, достигнув заданного значения времени ожидания.

Методы

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

Возвращает обещание, которое разрешает значение, возвращаемое предоставленной функцией задачи. Для заданного значения key можно вызывать только 1 задачу.

Вызов получения можно отменить с помощью abortSignal. При отмене обещание будет отклонено с AbortError.

acquireTimeoutInMs также можно предоставить свойствам. Если время ожидания достигнуто до вызова предоставленного task, обещание будет отклонено с сообщением об ошибке, указывающее время ожидания задачи, чтобы получить блокировку.

Сведения о методе

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

Возвращает обещание, которое разрешает значение, возвращаемое предоставленной функцией задачи. Для заданного значения key можно вызывать только 1 задачу.

Вызов получения можно отменить с помощью abortSignal. При отмене обещание будет отклонено с AbortError.

acquireTimeoutInMs также можно предоставить свойствам. Если время ожидания достигнуто до вызова предоставленного task, обещание будет отклонено с сообщением об ошибке, указывающее время ожидания задачи, чтобы получить блокировку.

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

Параметры

key

string

Все acquire вызовы группируются указанными key.

task

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

Функция, вызываемая после получения блокировки.

properties
AcquireLockProperties

Дополнительные свойства для управления поведением acquire.

Возвращаемое значение

Promise<T>