@kyo-services/schedulewise 2.1.0 → 2.2.1
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/README.md +4 -0
- package/dist/TaskScheduler.d.ts +6 -0
- package/dist/TaskScheduler.js +13 -1
- package/dist/TaskScheduler.js.map +1 -1
- package/package.json +2 -2
- package/src/TaskScheduler.ts +14 -1
package/README.md
CHANGED
|
@@ -143,6 +143,7 @@ interface TaskOptions {
|
|
|
143
143
|
| `resume()` | Resumes all task executions |
|
|
144
144
|
| `isPaused()` | Checks if scheduler is paused |
|
|
145
145
|
| `once(callback, options)` | Creates a one-time task with simplified API |
|
|
146
|
+
| `changeProcessorInterval(newInterval)` | Changes the scheduler's processor interval |
|
|
146
147
|
|
|
147
148
|
### Scheduler Control
|
|
148
149
|
|
|
@@ -155,6 +156,9 @@ console.log('Scheduler paused:', sw.isPaused()); // true
|
|
|
155
156
|
|
|
156
157
|
// Resume all task executions
|
|
157
158
|
sw.resume();
|
|
159
|
+
|
|
160
|
+
// Adjust processor interval (default: 100ms)
|
|
161
|
+
sw.changeProcessorInterval(500);
|
|
158
162
|
```
|
|
159
163
|
|
|
160
164
|
### One-Time Task (Simplified API)
|
package/dist/TaskScheduler.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare class TaskScheduler {
|
|
|
9
9
|
private currentTimestamp;
|
|
10
10
|
private scheduledTasks;
|
|
11
11
|
private schedulerInterval;
|
|
12
|
+
private processorInterval;
|
|
12
13
|
private constructor();
|
|
13
14
|
/**
|
|
14
15
|
* Gets the singleton instance of TaskScheduler
|
|
@@ -67,6 +68,11 @@ export declare class TaskScheduler {
|
|
|
67
68
|
* @internal For testing purposes
|
|
68
69
|
*/
|
|
69
70
|
processTasksNow(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Changes the processor interval
|
|
73
|
+
* @param {number} newInterval - The new interval in milliseconds
|
|
74
|
+
*/
|
|
75
|
+
changeProcessorInterval(newInterval: number): void;
|
|
70
76
|
/**
|
|
71
77
|
* Starts the task processor that executes scheduled tasks
|
|
72
78
|
* @private
|
package/dist/TaskScheduler.js
CHANGED
|
@@ -8,6 +8,7 @@ export class TaskScheduler {
|
|
|
8
8
|
currentTimestamp;
|
|
9
9
|
scheduledTasks = new Map();
|
|
10
10
|
schedulerInterval = null;
|
|
11
|
+
processorInterval = 100;
|
|
11
12
|
constructor() {
|
|
12
13
|
this.currentTimestamp = new Date();
|
|
13
14
|
this.startTaskProcessor();
|
|
@@ -129,6 +130,17 @@ export class TaskScheduler {
|
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Changes the processor interval
|
|
135
|
+
* @param {number} newInterval - The new interval in milliseconds
|
|
136
|
+
*/
|
|
137
|
+
changeProcessorInterval(newInterval) {
|
|
138
|
+
if (newInterval <= 0)
|
|
139
|
+
throw new Error('Interval must be greater than 0');
|
|
140
|
+
this.processorInterval = newInterval;
|
|
141
|
+
if (this.schedulerInterval !== null)
|
|
142
|
+
this.startTaskProcessor();
|
|
143
|
+
}
|
|
132
144
|
/**
|
|
133
145
|
* Starts the task processor that executes scheduled tasks
|
|
134
146
|
* @private
|
|
@@ -147,7 +159,7 @@ export class TaskScheduler {
|
|
|
147
159
|
if (task.shouldRemove())
|
|
148
160
|
this.removeTask(task.id);
|
|
149
161
|
}
|
|
150
|
-
},
|
|
162
|
+
}, this.processorInterval);
|
|
151
163
|
}
|
|
152
164
|
}
|
|
153
165
|
//# sourceMappingURL=TaskScheduler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskScheduler.js","sourceRoot":"","sources":["../src/TaskScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;GAGG;AACH,MAAM,OAAO,aAAa;IACjB,MAAM,CAAC,QAAQ,CAAgB;IAC/B,gBAAgB,CAAO;IACvB,cAAc,GAA+B,IAAI,GAAG,EAAE,CAAC;IACvD,iBAAiB,GAA0C,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskScheduler.js","sourceRoot":"","sources":["../src/TaskScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;GAGG;AACH,MAAM,OAAO,aAAa;IACjB,MAAM,CAAC,QAAQ,CAAgB;IAC/B,gBAAgB,CAAO;IACvB,cAAc,GAA+B,IAAI,GAAG,EAAE,CAAC;IACvD,iBAAiB,GAA0C,IAAI,CAAC;IAChE,iBAAiB,GAAW,GAAG,CAAC;IAExC;QACC,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,aAAa,CAAC,QAAQ;YAC1B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9C,OAAO,aAAa,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,UAA2B;QAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,WAAW;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,QAAsB,EAAE,OAAoB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,IAAI,CACpB,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,MAAM,EACN,QAAQ,EACR,OAAO,CAAC,QAAQ,EAChB,KAAK,EACL,OAAO,CAAC,IAAI,IAAI,KAAK,CACrB,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,UAA2B;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,aAAa;QACnB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,KAAK;QACX,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACF,CAAC;IAED;;OAEG;IACI,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3B,CAAC;IACF,CAAC;IAED;;;OAGG;IACI,QAAQ;QACd,OAAO,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAC,QAAoB,EAAE,OAAoB;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,eAAe;QACrB,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,SAAS,GACd,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;gBAC/B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAEjE,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IAED;;;OAGG;IACI,uBAAuB,CAAC,WAAmB;QACjD,IAAI,WAAW,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAEzE,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;QAErC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI;YAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAChE,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACzB,IAAI,IAAI,CAAC,iBAAiB;YAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAElE,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC;YAEnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBACjD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBACvF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAElD,IAAI,CAAC,SAAS;oBAAE,SAAS;gBAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACpC,IAAI,IAAI,CAAC,YAAY,EAAE;oBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;QACF,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,CAAC;CACD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kyo-services/schedulewise",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18.0.0"
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"bugs": {
|
|
80
80
|
"url": "https://github.com/kyo-services/schedulewise/issues"
|
|
81
81
|
},
|
|
82
|
-
"homepage": "https://kyo.services/
|
|
82
|
+
"homepage": "https://kyo.services/schedulewise",
|
|
83
83
|
"lint-staged": {
|
|
84
84
|
"*.ts": [
|
|
85
85
|
"eslint --fix",
|
package/src/TaskScheduler.ts
CHANGED
|
@@ -10,6 +10,7 @@ export class TaskScheduler {
|
|
|
10
10
|
private currentTimestamp: Date;
|
|
11
11
|
private scheduledTasks: Map<number | string, Task> = new Map();
|
|
12
12
|
private schedulerInterval: ReturnType<typeof setInterval> | null = null;
|
|
13
|
+
private processorInterval: number = 100;
|
|
13
14
|
|
|
14
15
|
private constructor() {
|
|
15
16
|
this.currentTimestamp = new Date();
|
|
@@ -156,6 +157,18 @@ export class TaskScheduler {
|
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
|
|
160
|
+
/**
|
|
161
|
+
* Changes the processor interval
|
|
162
|
+
* @param {number} newInterval - The new interval in milliseconds
|
|
163
|
+
*/
|
|
164
|
+
public changeProcessorInterval(newInterval: number): void {
|
|
165
|
+
if (newInterval <= 0) throw new Error('Interval must be greater than 0');
|
|
166
|
+
|
|
167
|
+
this.processorInterval = newInterval;
|
|
168
|
+
|
|
169
|
+
if (this.schedulerInterval !== null) this.startTaskProcessor();
|
|
170
|
+
}
|
|
171
|
+
|
|
159
172
|
/**
|
|
160
173
|
* Starts the task processor that executes scheduled tasks
|
|
161
174
|
* @private
|
|
@@ -175,6 +188,6 @@ export class TaskScheduler {
|
|
|
175
188
|
task.execute(this.currentTimestamp);
|
|
176
189
|
if (task.shouldRemove()) this.removeTask(task.id);
|
|
177
190
|
}
|
|
178
|
-
},
|
|
191
|
+
}, this.processorInterval);
|
|
179
192
|
}
|
|
180
193
|
}
|