update taskbuffer and add gitlab ci
This commit is contained in:
@ -1,39 +1,47 @@
|
||||
import * as plugins from "./taskbuffer.plugins"
|
||||
import * as helpers from "./taskbuffer.classes.helpers"
|
||||
|
||||
|
||||
export interface ITaskFunction {
|
||||
():PromiseLike<any>;
|
||||
}
|
||||
|
||||
export class Task {
|
||||
name:string;
|
||||
task:any;
|
||||
running:boolean;
|
||||
idle:boolean;
|
||||
buffered:boolean;
|
||||
running:boolean = false;
|
||||
runningBuffered:boolean = false;
|
||||
idle:boolean = true;
|
||||
buffered:boolean = false;
|
||||
bufferCounter:number;
|
||||
bufferMax:number;
|
||||
private _counterTriggerAbsolute:number;
|
||||
bufferMax:number = 1;
|
||||
private _counterTriggerAbsolute:number = 0;
|
||||
private _state:string;
|
||||
preTask:Task;
|
||||
afterTask:Task;
|
||||
|
||||
constructor(optionsArg:{
|
||||
taskFunction:any,
|
||||
taskFunction:ITaskFunction,
|
||||
preTask?:Task,
|
||||
afterTask?:Task,
|
||||
buffered?:boolean,
|
||||
bufferMax?:number,
|
||||
name?:string
|
||||
}){
|
||||
if (!optionsArg){optionsArg = {taskFunction:function(){}}}
|
||||
var options = optionsArg;
|
||||
this.task = optionsArg.taskFunction;
|
||||
this.preTask = options.preTask;
|
||||
this.afterTask = options.afterTask;
|
||||
this.running = false;
|
||||
this.idle = true;
|
||||
this.idle = !this.running && !this.runningBuffered;
|
||||
this.buffered = options.buffered;
|
||||
this.bufferMax = options.bufferMax;
|
||||
this.name = options.name;
|
||||
}
|
||||
|
||||
/**
|
||||
* trigger the task. Will trigger buffered if this.buffered is true
|
||||
*/
|
||||
trigger(){
|
||||
let done = plugins.Q.defer();
|
||||
if(this.buffered) {
|
||||
@ -46,15 +54,25 @@ export class Task {
|
||||
};
|
||||
return done.promise;
|
||||
};
|
||||
|
||||
/**
|
||||
* trigger task unbuffered.
|
||||
*/
|
||||
triggerUnBuffered(){
|
||||
return helpers.runTask(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* trigger task buffered.
|
||||
*/
|
||||
triggerBuffered(){
|
||||
var done = plugins.Q.defer();
|
||||
if(!(this.bufferCounter >= this.bufferMax)){
|
||||
this.bufferCounter++
|
||||
}
|
||||
helpers.runBufferedTask(this);
|
||||
};
|
||||
if(!this.runningBuffered){
|
||||
helpers.runBufferedTask(this);
|
||||
};
|
||||
return done.promise;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user