@labset/task-pool-executor
Version:
task pool executor
16 lines (15 loc) • 715 B
TypeScript
/// <reference types="node" />
import EventEmitter from 'events';
import { Runnable, TaskPoolExecutor } from './types';
export declare class SimpleTaskPoolExecutor<TOutput, TRunContext> extends EventEmitter implements TaskPoolExecutor<TOutput, TRunContext> {
readonly maxConcurrent: number;
readonly queue: Runnable<TOutput, TRunContext>[];
readonly current: Map<string, Promise<TOutput>>;
constructor(props: {
maxConcurrent: number;
});
_release(taskId: string): void;
_execute(taskId: string, runnable: Runnable<TOutput, TRunContext>, ctx?: TRunContext): string;
submit(runnable: Runnable<TOutput, TRunContext>, ctx?: TRunContext): void;
close(): Promise<TOutput[]>;
}