mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 23:04:04 +00:00
Updated croner to 8.1.0 and fixed "recurring-interval" type maintenance
This commit is contained in:
parent
1a5a1a6e5d
commit
d61688315d
3 changed files with 25 additions and 14 deletions
11
package-lock.json
generated
11
package-lock.json
generated
|
@ -24,7 +24,7 @@
|
||||||
"command-exists": "~1.2.9",
|
"command-exists": "~1.2.9",
|
||||||
"compare-versions": "~3.6.0",
|
"compare-versions": "~3.6.0",
|
||||||
"compression": "~1.7.4",
|
"compression": "~1.7.4",
|
||||||
"croner": "~6.0.5",
|
"croner": "^8.1.0",
|
||||||
"dayjs": "~1.11.5",
|
"dayjs": "~1.11.5",
|
||||||
"dev-null": "^0.1.1",
|
"dev-null": "^0.1.1",
|
||||||
"dotenv": "~16.0.3",
|
"dotenv": "~16.0.3",
|
||||||
|
@ -6738,12 +6738,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/croner": {
|
"node_modules/croner": {
|
||||||
"version": "6.0.7",
|
"version": "8.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/croner/-/croner-6.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/croner/-/croner-8.1.0.tgz",
|
||||||
"integrity": "sha512-k3Xx3Rcclfr60Yx4TmvsF3Yscuiql8LSvYLaphTsaq5Hk8La4Z/udmUANMOTKpgGGroI2F6/XOr9cU9OFkYluQ==",
|
"integrity": "sha512-sz990XOUPR8dG/r5BRKMBd15MYDDUu8oeSaxFD5DqvNgHSZw8Psd1s689/IGET7ezxRMiNlCIyGeY1Gvxp/MLg==",
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0"
|
"node": ">=18.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cronstrue": {
|
"node_modules/cronstrue": {
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
"command-exists": "~1.2.9",
|
"command-exists": "~1.2.9",
|
||||||
"compare-versions": "~3.6.0",
|
"compare-versions": "~3.6.0",
|
||||||
"compression": "~1.7.4",
|
"compression": "~1.7.4",
|
||||||
"croner": "~6.0.5",
|
"croner": "^8.1.0",
|
||||||
"dayjs": "~1.11.5",
|
"dayjs": "~1.11.5",
|
||||||
"dev-null": "^0.1.1",
|
"dev-null": "^0.1.1",
|
||||||
"dotenv": "~16.0.3",
|
"dotenv": "~16.0.3",
|
||||||
|
|
|
@ -253,6 +253,10 @@ class Maintenance extends BeanModel {
|
||||||
duration = this.duration * 1000;
|
duration = this.duration * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (duration === undefined && this.strategy === "recurring-interval") {
|
||||||
|
duration = this.duration * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
UptimeKumaServer.getInstance().sendMaintenanceListByUserID(this.user_id);
|
UptimeKumaServer.getInstance().sendMaintenanceListByUserID(this.user_id);
|
||||||
|
|
||||||
this.beanMeta.durationTimeout = setTimeout(() => {
|
this.beanMeta.durationTimeout = setTimeout(() => {
|
||||||
|
@ -263,9 +267,20 @@ class Maintenance extends BeanModel {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create Cron
|
// Create Cron
|
||||||
|
if (this.strategy === "recurring-interval") {
|
||||||
|
const startDate = dayjs(this.startDate);
|
||||||
|
const [ hour, minute ] = this.startTime.split(":");
|
||||||
|
const startDateTime = startDate.hour(hour).minute(minute);
|
||||||
|
this.beanMeta.job = new Cron(this.cron, {
|
||||||
|
timezone: await this.getTimezone(),
|
||||||
|
interval: this.interval_day * 24 * 60 * 60,
|
||||||
|
startAt: startDateTime.toISOString(),
|
||||||
|
}, startEvent);
|
||||||
|
} else {
|
||||||
this.beanMeta.job = new Cron(this.cron, {
|
this.beanMeta.job = new Cron(this.cron, {
|
||||||
timezone: await this.getTimezone(),
|
timezone: await this.getTimezone(),
|
||||||
}, startEvent);
|
}, startEvent);
|
||||||
|
}
|
||||||
|
|
||||||
// Continue if the maintenance is still in the window
|
// Continue if the maintenance is still in the window
|
||||||
let runningTimeslot = this.getRunningTimeslot();
|
let runningTimeslot = this.getRunningTimeslot();
|
||||||
|
@ -395,10 +410,7 @@ class Maintenance extends BeanModel {
|
||||||
} else if (!this.strategy.startsWith("recurring-")) {
|
} else if (!this.strategy.startsWith("recurring-")) {
|
||||||
this.cron = "";
|
this.cron = "";
|
||||||
} else if (this.strategy === "recurring-interval") {
|
} else if (this.strategy === "recurring-interval") {
|
||||||
let array = this.start_time.split(":");
|
this.cron = "* * * * *";
|
||||||
let hour = parseInt(array[0]);
|
|
||||||
let minute = parseInt(array[1]);
|
|
||||||
this.cron = minute + " " + hour + " */" + this.interval_day + " * *";
|
|
||||||
this.duration = this.calcDuration();
|
this.duration = this.calcDuration();
|
||||||
log.debug("maintenance", "Cron: " + this.cron);
|
log.debug("maintenance", "Cron: " + this.cron);
|
||||||
log.debug("maintenance", "Duration: " + this.duration);
|
log.debug("maintenance", "Duration: " + this.duration);
|
||||||
|
|
Loading…
Reference in a new issue