promise-pool-executor
Version:
A module for managing ES6 promise concurrency, frequency, and efficiency.
40 lines (39 loc) • 1.15 kB
TypeScript
export interface ConcurrencyLimit {
/**
* The maximum number of promises allowed to be active simultaneously.
*/
concurrencyLimit: number;
}
export interface FrequencyLimit {
/**
* The maximum number promises allowed to be generated within the time window specified by {frequencyWindow}.
*/
frequencyLimit: number;
/**
* The time window in milliseconds to use for {frequencyLimit}.
*/
frequencyWindow: number;
}
export interface PromisePoolGroupOptions extends Partial<ConcurrencyLimit>, Partial<FrequencyLimit> {}
export interface ActivePromiseCount {
/**
* The number of promises currently active.
*/
readonly activePromiseCount: number;
}
export interface FreeSlots {
/**
* The number of promises which can be created before reaching the configured limits.
*/
readonly freeSlots: number;
}
export interface PromisePoolGroup extends ConcurrencyLimit, FrequencyLimit, ActivePromiseCount, FreeSlots {
/**
* The number of tasks currently active or paused.
*/
readonly activeTaskCount: number;
/**
* Returns a promise which resolves when no tasks are currently active or paused.
*/
waitForIdle(): Promise<void>;
}