62 lines
1.7 KiB
TypeScript
62 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;
|
||
|
}
|