added Taskparallel class that executest tasks in parallel

This commit is contained in:
2016-05-15 15:28:38 +02:00
parent b1eeb3563e
commit 8944ae2462
18 changed files with 113 additions and 49 deletions

View File

@ -1,5 +1,8 @@
/// <reference path="./typings/main.d.ts" />
export * from "./taskbuffer.classes";
export {Task} from "./taskbuffer.classes.task";
export {Taskchain} from "./taskbuffer.classes.taskchain";
export {Taskparallel} from "./taskbuffer.classes.taskparallel";
export {Taskspace} from "./taskbuffer.classes.taskspace";
// import for naming only
import "./taskbuffer.classes.helpers"

View File

@ -1,6 +1,6 @@
/// <reference path="./typings/main.d.ts" />
import plugins = require("./taskbuffer.plugins");
import {Task} from "./taskbuffer.classes"
import {Task} from "./taskbuffer.classes.task";
export let emptyTaskFunction = function(){
let done = plugins.Q.defer();

View File

@ -1,6 +1,6 @@
/// <reference path="./typings/main.d.ts" />
import * as plugins from "./taskbuffer.plugins";
import {Task} from "./taskbuffer.classes";
import {Task} from "./taskbuffer.classes.task";
import helpers = require("./taskbuffer.classes.helpers");
export class Taskchain extends Task {
@ -55,14 +55,4 @@ export class Taskchain extends Task {
this._oraObject.start(this.name + " running...");
return helpers.runTask(this);
}
};
let myTask = new Taskchain(
{
taskArray: [
new Task({
taskFunction:function(){}
})
]
}
);
};

View File

@ -0,0 +1,29 @@
/// <reference path="./typings/main.d.ts" />
import * as plugins from "./taskbuffer.plugins"
import * as helpers from "./taskbuffer.classes.helpers"
import {Task} from "./taskbuffer.classes.task"
export class Taskparallel extends Task {
taskArray:Task[];
constructor(optionsArg:{
taskArray:Task[]
}){
let options = plugins.lodash.assign(
optionsArg,
{
taskFunction:() => {
let done = plugins.Q.defer();
let promiseArray; // stores promises of all tasks, since they run in parallel
this.taskArray.forEach(function(taskArg:Task){
promiseArray.push(taskArg.trigger());
})
plugins.Q.all(promiseArray)
.then(done.resolve);
return done.promise;
}
}
)
super(options);
}
}

View File

@ -0,0 +1,7 @@
/// <reference path="./typings/main.d.ts" />
import * as plugins from "./taskbuffer.plugins"
import * as helpers from "./taskbuffer.classes.helpers"
export class Taskspace {
}

View File

@ -1,2 +0,0 @@
export * from "./taskbuffer.classes.task"
export * from "./taskbuffer.classes.taskchain"