async-scheduler
Version:
 
29 lines (28 loc) • 1.03 kB
TypeScript
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;
}