Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
ddc9a77fe2 | |||
575912eab7 | |||
eee146ae8b | |||
ea8ef61c40 | |||
70bb5b3f5d | |||
5fa7312171 |
4082
package-lock.json
generated
4082
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
17
package.json
17
package.json
@ -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": [
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
@ -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';
|
||||||
|
25
ts/taskbuffer.classes.taskdebounced.ts
Normal file
25
ts/taskbuffer.classes.taskdebounced.ts
Normal 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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 };
|
||||||
|
Reference in New Issue
Block a user