@push.rocks/taskbuffer 3.1.2 → 3.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_bundle/bundle.js +640 -88
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/taskbuffer.classes.distributedcoordinator.d.ts +3 -0
- package/dist_ts/taskbuffer.classes.distributedcoordinator.js +1 -1
- package/dist_ts/taskbuffer.classes.taskmanager.d.ts +2 -2
- package/dist_ts/taskbuffer.classes.taskmanager.js +11 -4
- package/dist_ts/taskbuffer.plugins.d.ts +2 -2
- package/dist_ts/taskbuffer.plugins.js +3 -3
- package/package.json +5 -5
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/taskbuffer.classes.distributedcoordinator.ts +4 -0
- package/ts/taskbuffer.classes.taskmanager.ts +11 -3
- package/ts/taskbuffer.plugins.ts +2 -2
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/taskbuffer',
|
|
6
|
-
version: '3.1.
|
|
6
|
+
version: '3.1.4',
|
|
7
7
|
description: 'flexible task management. TypeScript ready!'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDZDQUE2QztDQUMzRCxDQUFBIn0=
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export interface IDistributedTaskRequest {
|
|
5
5
|
submitterId: string;
|
|
6
|
+
requestResponseId: string;
|
|
6
7
|
taskName: string;
|
|
7
8
|
taskVersion: string;
|
|
8
9
|
taskExecutionTime: number;
|
|
@@ -20,4 +21,6 @@ export interface IDistributedTaskRequestResult {
|
|
|
20
21
|
export declare abstract class AbstractDistributedCoordinator {
|
|
21
22
|
abstract fireDistributedTaskRequest(infoBasis: IDistributedTaskRequest): Promise<IDistributedTaskRequestResult>;
|
|
22
23
|
abstract updateDistributedTaskRequest(infoBasis: IDistributedTaskRequest): Promise<void>;
|
|
24
|
+
abstract start(): Promise<void>;
|
|
25
|
+
abstract stop(): Promise<void>;
|
|
23
26
|
}
|
|
@@ -2,4 +2,4 @@ import { Task } from './taskbuffer.classes.task.js';
|
|
|
2
2
|
import * as plugins from './taskbuffer.plugins.js';
|
|
3
3
|
export class AbstractDistributedCoordinator {
|
|
4
4
|
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLmRpc3RyaWJ1dGVkY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90YXNrYnVmZmVyLmNsYXNzZXMuZGlzdHJpYnV0ZWRjb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxLQUFLLE9BQU8sTUFBTSx5QkFBeUIsQ0FBQztBQXdCbkQsTUFBTSxPQUFnQiw4QkFBOEI7Q0FXbkQifQ==
|
|
@@ -27,6 +27,6 @@ export declare class TaskManager {
|
|
|
27
27
|
descheduleTaskByName(taskName: string): void;
|
|
28
28
|
descheduleTask(task: Task): Promise<void>;
|
|
29
29
|
getScheduleForTaskName(taskName: string): string | null;
|
|
30
|
-
start(): void
|
|
31
|
-
stop(): void
|
|
30
|
+
start(): Promise<void>;
|
|
31
|
+
stop(): Promise<void>;
|
|
32
32
|
}
|
|
@@ -3,7 +3,7 @@ import { Task } from './taskbuffer.classes.task.js';
|
|
|
3
3
|
import { AbstractDistributedCoordinator } from './taskbuffer.classes.distributedcoordinator.js';
|
|
4
4
|
export class TaskManager {
|
|
5
5
|
constructor(options = {}) {
|
|
6
|
-
this.randomId = plugins.
|
|
6
|
+
this.randomId = plugins.smartunique.shortId();
|
|
7
7
|
this.taskMap = new plugins.lik.ObjectMap();
|
|
8
8
|
this.cronJobManager = new plugins.smarttime.CronManager();
|
|
9
9
|
this.options = {
|
|
@@ -69,6 +69,7 @@ export class TaskManager {
|
|
|
69
69
|
console.log('Found a distributed coordinator, performing consultation.');
|
|
70
70
|
return this.options.distributedCoordinator.fireDistributedTaskRequest({
|
|
71
71
|
submitterId: this.randomId,
|
|
72
|
+
requestResponseId: plugins.smartunique.shortId(),
|
|
72
73
|
status: 'requesting',
|
|
73
74
|
taskExecutionParallel: 1,
|
|
74
75
|
taskExecutionTime: triggerTime,
|
|
@@ -94,11 +95,17 @@ export class TaskManager {
|
|
|
94
95
|
const task = this.getTaskByName(taskName);
|
|
95
96
|
return task && task.cronJob ? task.cronJob.cronExpression : null;
|
|
96
97
|
}
|
|
97
|
-
start() {
|
|
98
|
+
async start() {
|
|
99
|
+
if (this.options.distributedCoordinator) {
|
|
100
|
+
await this.options.distributedCoordinator.start();
|
|
101
|
+
}
|
|
98
102
|
this.cronJobManager.start();
|
|
99
103
|
}
|
|
100
|
-
stop() {
|
|
104
|
+
async stop() {
|
|
101
105
|
this.cronJobManager.stop();
|
|
106
|
+
if (this.options.distributedCoordinator) {
|
|
107
|
+
await this.options.distributedCoordinator.stop();
|
|
108
|
+
}
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5jbGFzc2VzLnRhc2ttYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdGFza2J1ZmZlci5jbGFzc2VzLnRhc2ttYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BELE9BQU8sRUFBRSw4QkFBOEIsRUFBc0MsTUFBTSxnREFBZ0QsQ0FBQztBQVlwSSxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUFZLFVBQTBDLEVBQUU7UUFQakQsYUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsWUFBTyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQVEsQ0FBQztRQUMzQyxtQkFBYyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0RCxZQUFPLEdBQW1DO1lBQy9DLHNCQUFzQixFQUFFLElBQUk7U0FDN0IsQ0FBQztRQUdBLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxhQUFhLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVU7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7U0FDckU7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJ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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as isounique from '@push.rocks/isounique';
|
|
2
1
|
import * as lik from '@push.rocks/lik';
|
|
3
2
|
import * as smartlog from '@push.rocks/smartlog';
|
|
4
3
|
import * as smartpromise from '@push.rocks/smartpromise';
|
|
5
4
|
import * as smartdelay from '@push.rocks/smartdelay';
|
|
6
5
|
import * as smartrx from '@push.rocks/smartrx';
|
|
7
6
|
import * as smarttime from '@push.rocks/smarttime';
|
|
8
|
-
|
|
7
|
+
import * as smartunique from '@push.rocks/smartunique';
|
|
8
|
+
export { lik, smartlog, smartpromise, smartdelay, smartrx, smarttime, smartunique };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as isounique from '@push.rocks/isounique';
|
|
2
1
|
import * as lik from '@push.rocks/lik';
|
|
3
2
|
import * as smartlog from '@push.rocks/smartlog';
|
|
4
3
|
import * as smartpromise from '@push.rocks/smartpromise';
|
|
5
4
|
import * as smartdelay from '@push.rocks/smartdelay';
|
|
6
5
|
import * as smartrx from '@push.rocks/smartrx';
|
|
7
6
|
import * as smarttime from '@push.rocks/smarttime';
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
import * as smartunique from '@push.rocks/smartunique';
|
|
8
|
+
export { lik, smartlog, smartpromise, smartdelay, smartrx, smarttime, smartunique };
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza2J1ZmZlci5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvdGFza2J1ZmZlci5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/taskbuffer",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "flexible task management. TypeScript ready!",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
},
|
|
30
30
|
"homepage": "https://gitlab.com/pushrocks/taskbuffer#readme",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@push.rocks/
|
|
33
|
-
"@push.rocks/lik": "^6.0.3",
|
|
32
|
+
"@push.rocks/lik": "^6.0.5",
|
|
34
33
|
"@push.rocks/smartdelay": "^3.0.5",
|
|
35
34
|
"@push.rocks/smartlog": "^3.0.3",
|
|
36
35
|
"@push.rocks/smartpromise": "^4.0.3",
|
|
37
36
|
"@push.rocks/smartrx": "^3.0.6",
|
|
38
|
-
"@push.rocks/smarttime": "^4.0.
|
|
37
|
+
"@push.rocks/smarttime": "^4.0.5",
|
|
38
|
+
"@push.rocks/smartunique": "^3.0.6"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@gitzone/tsbuild": "^2.1.66",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@gitzone/tsrun": "^1.2.44",
|
|
44
44
|
"@gitzone/tstest": "^1.0.77",
|
|
45
45
|
"@push.rocks/tapbundle": "^5.0.15",
|
|
46
|
-
"@types/node": "^20.
|
|
46
|
+
"@types/node": "^20.5.0"
|
|
47
47
|
},
|
|
48
48
|
"files": [
|
|
49
49
|
"ts/**/*",
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -6,6 +6,7 @@ import * as plugins from './taskbuffer.plugins.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export interface IDistributedTaskRequest {
|
|
8
8
|
submitterId: string;
|
|
9
|
+
requestResponseId: string;
|
|
9
10
|
taskName: string;
|
|
10
11
|
taskVersion: string;
|
|
11
12
|
taskExecutionTime: number;
|
|
@@ -30,4 +31,7 @@ export abstract class AbstractDistributedCoordinator {
|
|
|
30
31
|
public abstract updateDistributedTaskRequest(
|
|
31
32
|
infoBasis: IDistributedTaskRequest
|
|
32
33
|
): Promise<void>;
|
|
34
|
+
|
|
35
|
+
public abstract start(): Promise<void>;
|
|
36
|
+
public abstract stop(): Promise<void>;
|
|
33
37
|
}
|
|
@@ -13,7 +13,7 @@ export interface ITaskManagerConstructorOptions {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export class TaskManager {
|
|
16
|
-
public randomId = plugins.
|
|
16
|
+
public randomId = plugins.smartunique.shortId();
|
|
17
17
|
public taskMap = new plugins.lik.ObjectMap<Task>();
|
|
18
18
|
private cronJobManager = new plugins.smarttime.CronManager();
|
|
19
19
|
public options: ITaskManagerConstructorOptions = {
|
|
@@ -90,8 +90,10 @@ export class TaskManager {
|
|
|
90
90
|
|
|
91
91
|
private async performDistributedConsultation(task: Task, triggerTime: number): Promise<IDistributedTaskRequestResult> {
|
|
92
92
|
console.log('Found a distributed coordinator, performing consultation.');
|
|
93
|
+
|
|
93
94
|
return this.options.distributedCoordinator.fireDistributedTaskRequest({
|
|
94
95
|
submitterId: this.randomId,
|
|
96
|
+
requestResponseId: plugins.smartunique.shortId(),
|
|
95
97
|
status: 'requesting',
|
|
96
98
|
taskExecutionParallel: 1,
|
|
97
99
|
taskExecutionTime: triggerTime,
|
|
@@ -121,11 +123,17 @@ export class TaskManager {
|
|
|
121
123
|
return task && task.cronJob ? task.cronJob.cronExpression : null;
|
|
122
124
|
}
|
|
123
125
|
|
|
124
|
-
public start() {
|
|
126
|
+
public async start() {
|
|
127
|
+
if (this.options.distributedCoordinator) {
|
|
128
|
+
await this.options.distributedCoordinator.start();
|
|
129
|
+
}
|
|
125
130
|
this.cronJobManager.start();
|
|
126
131
|
}
|
|
127
132
|
|
|
128
|
-
public stop() {
|
|
133
|
+
public async stop() {
|
|
129
134
|
this.cronJobManager.stop();
|
|
135
|
+
if (this.options.distributedCoordinator) {
|
|
136
|
+
await this.options.distributedCoordinator.stop();
|
|
137
|
+
}
|
|
130
138
|
}
|
|
131
139
|
}
|
package/ts/taskbuffer.plugins.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as isounique from '@push.rocks/isounique';
|
|
2
1
|
import * as lik from '@push.rocks/lik';
|
|
3
2
|
import * as smartlog from '@push.rocks/smartlog';
|
|
4
3
|
import * as smartpromise from '@push.rocks/smartpromise';
|
|
5
4
|
import * as smartdelay from '@push.rocks/smartdelay';
|
|
6
5
|
import * as smartrx from '@push.rocks/smartrx';
|
|
7
6
|
import * as smarttime from '@push.rocks/smarttime';
|
|
7
|
+
import * as smartunique from '@push.rocks/smartunique';
|
|
8
8
|
|
|
9
|
-
export {
|
|
9
|
+
export { lik, smartlog, smartpromise, smartdelay, smartrx, smarttime, smartunique };
|