Compare commits

..

6 Commits

Author SHA1 Message Date
ddc9a77fe2 2.1.5 2020-09-02 13:04:12 +00:00
575912eab7 fix(core): update 2020-09-02 13:04:12 +00:00
eee146ae8b 2.1.4 2020-07-12 10:57:15 +00:00
ea8ef61c40 fix(core): update 2020-07-12 10:57:15 +00:00
70bb5b3f5d 2.1.3 2020-07-12 02:40:45 +00:00
5fa7312171 fix(core): update 2020-07-12 02:40:45 +00:00
8 changed files with 2616 additions and 1537 deletions

4082
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/taskbuffer",
"version": "2.1.2",
"version": "2.1.5",
"private": false,
"description": "flexible task management. TypeScript ready!",
"main": "dist_ts/index.js",
@ -27,20 +27,21 @@
},
"homepage": "https://gitlab.com/pushrocks/taskbuffer#readme",
"dependencies": {
"@pushrocks/lik": "^4.0.13",
"@pushrocks/lik": "^4.0.17",
"@pushrocks/smartdelay": "^2.0.10",
"@pushrocks/smartlog": "^2.0.35",
"@pushrocks/smartlog": "^2.0.36",
"@pushrocks/smartpromise": "^3.0.6",
"@pushrocks/smartrx": "^2.0.18",
"@pushrocks/smarttime": "^3.0.24",
"@types/cron": "^1.7.2"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.24",
"@gitzone/tsbundle": "^1.0.72",
"@gitzone/tstest": "^1.0.41",
"@gitzone/tsbuild": "^2.1.25",
"@gitzone/tsbundle": "^1.0.78",
"@gitzone/tstest": "^1.0.44",
"@pushrocks/tapbundle": "^3.2.9",
"@types/node": "^14.0.22",
"tslint": "^6.1.2",
"@types/node": "^14.6.2",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.18.0"
},
"files": [

View File

@ -28,6 +28,7 @@ tap.test('should run the task as expected', async () => {
},
})
);
myTaskManager.start();
await myTaskManager.triggerTaskByName('myTask');
// tslint:disable-next-line:no-unused-expression
expect(referenceBoolean).to.be.true;
@ -39,4 +40,8 @@ tap.test('should schedule task', async () => {
myTaskManager.descheduleTaskByName('myTask');
});
tap.test('should stop the taskmanager', async () => {
myTaskManager.stop();
});
tap.start();

View File

@ -28,6 +28,7 @@ tap.test('should run the task as expected', async () => {
},
})
);
myTaskManager.start();
await myTaskManager.triggerTaskByName('myTask');
// tslint:disable-next-line:no-unused-expression
expect(referenceBoolean).to.be.true;
@ -39,4 +40,8 @@ tap.test('should schedule task', async () => {
myTaskManager.descheduleTaskByName('myTask');
});
tap.test('should stop the taskmanager', async () => {
myTaskManager.stop();
});
tap.start();

View File

@ -4,3 +4,4 @@ export { Taskparallel } from './taskbuffer.classes.taskparallel';
export { TaskManager } from './taskbuffer.classes.taskmanager';
export { TaskOnce } from './taskbuffer.classes.taskonce';
export { TaskRunner } from './taskbuffer.classes.taskrunner';
export { TaskDebounced } from './taskbuffer.classes.taskdebounced';

View File

@ -0,0 +1,25 @@
import * as plugins from './taskbuffer.plugins';
import { Task, ITaskFunction } from './taskbuffer.classes.task';
export class TaskDebounced<T = unknown> extends Task {
private _debouncedTaskFunction: ITaskFunction;
private _observableIntake = new plugins.smartrx.ObservableIntake<T>();
constructor(optionsArg: {
name: string;
taskFunction: ITaskFunction;
debounceTimeInMillis: number;
}) {
super({
name: optionsArg.name,
taskFunction: async (x: T) => {
this._observableIntake.push(x);
}
});
this.taskFunction = optionsArg.taskFunction;
this._observableIntake.observable.pipe(plugins.smartrx.rxjs.ops.debounceTime(optionsArg.debounceTimeInMillis)).subscribe((x) => {
this.taskFunction(x);
});
}
}

View File

@ -74,7 +74,6 @@ export class TaskManager {
await taskToSchedule.triggerBuffered();
});
taskToSchedule.cronJob = cronJob;
this.cronJobManager.start();
}
/**
@ -104,4 +103,18 @@ export class TaskManager {
* @param taskNameArg
*/
public getSchedulesForTaskName(taskNameArg: string) {}
/**
* starts the taskmanager
*/
public start() {
this.cronJobManager.start();
}
/**
* stops the taskmanager
*/
public stop() {
this.cronJobManager.stop();
}
}

View File

@ -2,6 +2,7 @@ import * as smartlog from '@pushrocks/smartlog';
import * as lik from '@pushrocks/lik';
import * as smartpromise from '@pushrocks/smartpromise';
import * as smartdelay from '@pushrocks/smartdelay';
import * as smartrx from '@pushrocks/smartrx';
import * as smarttime from '@pushrocks/smarttime';
export { smartlog, lik, smartpromise, smartdelay, smarttime };
export { smartlog, lik, smartpromise, smartdelay, smartrx, smarttime };