61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
import { Config } from './config';
|
|
export interface Task {
|
|
capabilities: any;
|
|
specs: Array<string>;
|
|
taskId: string;
|
|
done: any;
|
|
}
|
|
/**
|
|
* The taskScheduler keeps track of the spec files that needs to run next
|
|
* and which task is running what.
|
|
*/
|
|
export declare class TaskQueue {
|
|
capabilities: any;
|
|
specLists: any;
|
|
numRunningInstances: number;
|
|
maxInstance: number;
|
|
specsIndex: number;
|
|
constructor(capabilities: any, specLists: any);
|
|
}
|
|
export declare class TaskScheduler {
|
|
private config;
|
|
taskQueues: Array<TaskQueue>;
|
|
rotationIndex: number;
|
|
/**
|
|
* A scheduler to keep track of specs that need running and their associated
|
|
* capabilities. It will suggest a task (combination of capabilities and spec)
|
|
* to run while observing the following config rules:
|
|
* multiCapabilities, shardTestFiles, and maxInstance.
|
|
* Precondition: multiCapabilities is a non-empty array
|
|
* (capabilities and getCapabilities will both be ignored)
|
|
*
|
|
* @constructor
|
|
* @param {Object} config parsed from the config file
|
|
*/
|
|
constructor(config: Config);
|
|
/**
|
|
* Get the next task that is allowed to run without going over maxInstance.
|
|
*
|
|
* @return {{capabilities: Object, specs: Array.<string>, taskId: string,
|
|
* done: function()}}
|
|
*/
|
|
nextTask(): Task;
|
|
/**
|
|
* Get the number of tasks left to run or are currently running.
|
|
*
|
|
* @return {number}
|
|
*/
|
|
numTasksOutstanding(): number;
|
|
/**
|
|
* Get maximum number of concurrent tasks required/permitted.
|
|
*
|
|
* @return {number}
|
|
*/
|
|
maxConcurrentTasks(): number;
|
|
/**
|
|
* Returns number of tasks currently running.
|
|
*
|
|
* @return {number}
|
|
*/
|
|
countActiveTasks(): number;
|
|
}
|