Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
725102d02c | |||
7c73579c9f |
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smarttime",
|
||||
"version": "3.0.23",
|
||||
"version": "3.0.24",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@pushrocks/smarttime",
|
||||
"private": false,
|
||||
"version": "3.0.23",
|
||||
"version": "3.0.24",
|
||||
"description": "handle time in smart ways",
|
||||
"main": "dist_ts/index.js",
|
||||
"typings": "dist_ts/index.d.ts",
|
||||
|
@ -28,29 +28,36 @@ export class CronManager {
|
||||
* starts the cronjob
|
||||
*/
|
||||
public start() {
|
||||
this.status = 'started';
|
||||
for (const cronJob of this.cronjobs.getArray()) {
|
||||
cronJob.start();
|
||||
}
|
||||
this.executionTimeout = new plugins.smartdelay.Timeout(0);
|
||||
if (this.status !== 'started') {
|
||||
this.status = 'started';
|
||||
for (const cronJob of this.cronjobs.getArray()) {
|
||||
cronJob.start();
|
||||
}
|
||||
this.executionTimeout = new plugins.smartdelay.Timeout(0);
|
||||
|
||||
// recursion
|
||||
const runCheckExecution = () => {
|
||||
console.log(`Next CronJob scheduled in ${this.executionTimeout.getTimeLeft()} milliseconds`);
|
||||
this.executionTimeout.promise.then(() => {
|
||||
let timeToNextOverallExecution: number;
|
||||
for (const cronJob of this.cronjobs.getArray()) {
|
||||
const timeToNextJobExecution = cronJob.checkExecution();
|
||||
if (timeToNextJobExecution < timeToNextOverallExecution || !timeToNextOverallExecution) {
|
||||
timeToNextOverallExecution = timeToNextJobExecution;
|
||||
// recursion
|
||||
const runCheckExecution = () => {
|
||||
console.log(
|
||||
`Next CronJob scheduled in ${this.executionTimeout.getTimeLeft()} milliseconds`
|
||||
);
|
||||
this.executionTimeout.promise.then(() => {
|
||||
let timeToNextOverallExecution: number;
|
||||
for (const cronJob of this.cronjobs.getArray()) {
|
||||
const timeToNextJobExecution = cronJob.checkExecution();
|
||||
if (
|
||||
timeToNextJobExecution < timeToNextOverallExecution ||
|
||||
!timeToNextOverallExecution
|
||||
) {
|
||||
timeToNextOverallExecution = timeToNextJobExecution;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.executionTimeout = new plugins.smartdelay.Timeout(timeToNextOverallExecution);
|
||||
runCheckExecution();
|
||||
});
|
||||
};
|
||||
this.executionTimeout = new plugins.smartdelay.Timeout(timeToNextOverallExecution);
|
||||
runCheckExecution();
|
||||
});
|
||||
};
|
||||
|
||||
runCheckExecution();
|
||||
runCheckExecution();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user