UNPKG

1.24 kBTypeScriptView Raw
1import { Resolver } from '@stoplight/json-ref-resolver';
2import { IGraph, NodeInstance } from '../graph';
3import { GraphTask, IScheduler, ISchedulerStateSnapshot, ITaskHandler } from '../scheduler';
4export declare function createScheduler(props: ISchedulerProps): Scheduler;
5export interface ISchedulerProps {
6 graph: IGraph;
7 resolver: Resolver;
8}
9declare class Scheduler implements IScheduler {
10 private _graph;
11 private _queue;
12 private readonly _resolver;
13 private _queued;
14 private _handlers;
15 private _running;
16 mightBeStuck: boolean;
17 private _mightBeStuckTimeout?;
18 constructor(props: ISchedulerProps);
19 get isBusy(): boolean;
20 get queuedCount(): number;
21 snapshot(): ISchedulerStateSnapshot;
22 queue: (task: GraphTask) => Promise<void>;
23 queueAll: (tasks: GraphTask[]) => Promise<void>[];
24 queueLength(): number;
25 registerHandler: <T extends GraphTask = GraphTask, N extends NodeInstance = NodeInstance>(op: T["op"], handler: ITaskHandler<T, N>) => import("@stoplight/lifecycle").IDisposable;
26 drain: () => Promise<void>;
27 run(task: GraphTask): Promise<void>;
28 private _run;
29 private drainQueue;
30 private _runQueueTask;
31 private _handleRunResult;
32}
33export {};