1 | import { Resolver } from '@stoplight/json-ref-resolver';
|
2 | import { IGraph, NodeInstance } from '../graph';
|
3 | import { GraphTask, IScheduler, ISchedulerStateSnapshot, ITaskHandler } from '../scheduler';
|
4 | export declare function createScheduler(props: ISchedulerProps): Scheduler;
|
5 | export interface ISchedulerProps {
|
6 | graph: IGraph;
|
7 | resolver: Resolver;
|
8 | }
|
9 | declare 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 | }
|
33 | export {};
|