UNPKG

yqueue

Version:

Yet another concurrent task queue

22 lines (21 loc) 847 B
export declare const DEFAULT_QUEUE_CONCURRENCY = 10; export interface YQueueOptions { concurrency?: number; } export interface EnqueueOptions { priority: number; } export declare type Task<TaskResultType> = (() => PromiseLike<TaskResultType>) | (() => TaskResultType); export declare class YQueue { readonly options?: YQueueOptions | undefined; private readonly semaphore; readonly concurrency: number; private onIdleWaits; private onQueueLessThanWaits; constructor(options?: YQueueOptions | undefined); run<TaskResultType>(fn: Task<TaskResultType>, options?: Partial<EnqueueOptions>): Promise<TaskResultType>; add<TaskResultType>(fn: Task<TaskResultType>, options?: Partial<EnqueueOptions>): void; onIdle(): Promise<void>; onQueueSizeLessThan(size: number): Promise<void>; } export default YQueue;