mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 23:04:04 +00:00
added inferDuration to calculate cron duration
This commit is contained in:
parent
7f64badb06
commit
4836f72cb8
1 changed files with 19 additions and 17 deletions
|
@ -239,23 +239,7 @@ class Maintenance extends BeanModel {
|
||||||
this.beanMeta.status = "under-maintenance";
|
this.beanMeta.status = "under-maintenance";
|
||||||
clearTimeout(this.beanMeta.durationTimeout);
|
clearTimeout(this.beanMeta.durationTimeout);
|
||||||
|
|
||||||
// Check if duration is still in the window. If not, use the duration from the current time to the end of the window
|
let duration = this.inferDuration(customDuration);
|
||||||
let duration;
|
|
||||||
|
|
||||||
if (customDuration > 0) {
|
|
||||||
duration = customDuration;
|
|
||||||
} else if (this.end_date) {
|
|
||||||
let d = dayjs(this.end_date).diff(dayjs(), "second");
|
|
||||||
if (d < this.duration) {
|
|
||||||
duration = d * 1000;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
duration = this.duration * 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (duration === undefined && this.strategy === "recurring-interval") {
|
|
||||||
duration = this.duration * 1000; // For recurring-interval, the duration needs to be defined
|
|
||||||
}
|
|
||||||
|
|
||||||
UptimeKumaServer.getInstance().sendMaintenanceListByUserID(this.user_id);
|
UptimeKumaServer.getInstance().sendMaintenanceListByUserID(this.user_id);
|
||||||
|
|
||||||
|
@ -327,6 +311,24 @@ class Maintenance extends BeanModel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calculate the maintenance duration
|
||||||
|
* @returns {number}
|
||||||
|
*/
|
||||||
|
|
||||||
|
inferDuration(customDuration) {
|
||||||
|
// Check if duration is still in the window. If not, use the duration from the current time to the end of the window
|
||||||
|
if (customDuration > 0) {
|
||||||
|
return customDuration;
|
||||||
|
} else if (this.end_date) {
|
||||||
|
let d = dayjs(this.end_date).diff(dayjs(), "second");
|
||||||
|
if (d < this.duration) {
|
||||||
|
return d * 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this.duration * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop the maintenance
|
* Stop the maintenance
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
|
|
Loading…
Reference in a new issue