added Taskparallel class that executest tasks in parallel
This commit is contained in:
@ -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"
|
@ -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();
|
||||
|
@ -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(){}
|
||||
})
|
||||
]
|
||||
}
|
||||
);
|
||||
};
|
29
ts/taskbuffer.classes.taskparallel.ts
Normal file
29
ts/taskbuffer.classes.taskparallel.ts
Normal 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);
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
export * from "./taskbuffer.classes.task"
|
||||
export * from "./taskbuffer.classes.taskchain"
|
Reference in New Issue
Block a user