UNPKG

async-scheduler

Version:

![CI](https://github.com/kremi151/async-scheduler/workflows/CI/badge.svg) ![NPM](https://img.shields.io/npm/v/async-scheduler?color=green)

29 lines (28 loc) 1.03 kB
import { SchedulableTask } from "./SchedulableTask"; import SchedulerError from "./SchedulerError"; import { SchedulerOptions } from "./SchedulerOptions"; import Builder from "./Builder"; export default class Scheduler { private readonly _maxConcurrentTasks; private readonly _samePriorityMutex; private readonly _mutexStrategy; private _queue; private _isExecuting; private _idleListeners; private readonly _errorLog; constructor(maxConcurrentTasks: number, options?: SchedulerOptions); enqueue<T, M>(task: SchedulableTask<T, M> | (() => Promise<T>)): Promise<T>; prepare<T>(task: () => Promise<T>): Builder<T, any>; private _addTask; get executingTasks(): number; protected createCanceledError(): SchedulerError; private _findFirstPendingTask; private _isIdle; private _removeTaskAt; private _executeTask; private _executeNextTasks; private _switchToIdle; waitForIdle(): Promise<void>; private _applyPriorities; private _checkMutexes; }