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

View File

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

View File

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

View File

@ -4,3 +4,4 @@ export { Taskparallel } from './taskbuffer.classes.taskparallel';
export { TaskManager } from './taskbuffer.classes.taskmanager'; export { TaskManager } from './taskbuffer.classes.taskmanager';
export { TaskOnce } from './taskbuffer.classes.taskonce'; export { TaskOnce } from './taskbuffer.classes.taskonce';
export { TaskRunner } from './taskbuffer.classes.taskrunner'; 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(); await taskToSchedule.triggerBuffered();
}); });
taskToSchedule.cronJob = cronJob; taskToSchedule.cronJob = cronJob;
this.cronJobManager.start();
} }
/** /**
@ -104,4 +103,18 @@ export class TaskManager {
* @param taskNameArg * @param taskNameArg
*/ */
public getSchedulesForTaskName(taskNameArg: string) {} 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 lik from '@pushrocks/lik';
import * as smartpromise from '@pushrocks/smartpromise'; import * as smartpromise from '@pushrocks/smartpromise';
import * as smartdelay from '@pushrocks/smartdelay'; import * as smartdelay from '@pushrocks/smartdelay';
import * as smartrx from '@pushrocks/smartrx';
import * as smarttime from '@pushrocks/smarttime'; import * as smarttime from '@pushrocks/smarttime';
export { smartlog, lik, smartpromise, smartdelay, smarttime }; export { smartlog, lik, smartpromise, smartdelay, smartrx, smarttime };