2023-05-12 09:55:48 -07:00
|
|
|
const { UptimeKumaServer } = require("./uptime-kuma-server");
|
|
|
|
const { clearOldData } = require("./jobs/clear-old-data");
|
|
|
|
const Cron = require("croner");
|
|
|
|
|
2021-09-27 08:40:38 -07:00
|
|
|
const jobs = [
|
|
|
|
{
|
|
|
|
name: "clear-old-data",
|
2023-05-12 09:55:48 -07:00
|
|
|
interval: "14 03 * * *",
|
|
|
|
jobFunc: clearOldData,
|
|
|
|
croner: null,
|
2021-10-23 06:44:21 -07:00
|
|
|
},
|
2021-09-27 08:40:38 -07:00
|
|
|
];
|
|
|
|
|
2022-04-20 11:56:40 -07:00
|
|
|
/**
|
|
|
|
* Initialize background jobs
|
2023-05-12 09:55:48 -07:00
|
|
|
* @returns {Promise<void>}
|
2022-04-20 11:56:40 -07:00
|
|
|
*/
|
2023-05-12 09:55:48 -07:00
|
|
|
const initBackgroundJobs = async function () {
|
|
|
|
const timezone = await UptimeKumaServer.getInstance().getTimezone();
|
|
|
|
|
|
|
|
for (const job of jobs) {
|
|
|
|
const cornerJob = new Cron(
|
|
|
|
job.interval,
|
|
|
|
{
|
|
|
|
name: job.name,
|
|
|
|
timezone,
|
|
|
|
},
|
|
|
|
job.jobFunc,
|
|
|
|
);
|
|
|
|
job.croner = cornerJob;
|
|
|
|
}
|
2021-09-27 08:40:38 -07:00
|
|
|
|
|
|
|
};
|
|
|
|
|
2023-01-05 14:19:05 -08:00
|
|
|
/** Stop all background jobs if running */
|
2022-04-05 04:41:29 -07:00
|
|
|
const stopBackgroundJobs = function () {
|
2023-05-12 09:55:48 -07:00
|
|
|
for (const job of jobs) {
|
|
|
|
if (job.croner) {
|
|
|
|
job.croner.stop();
|
|
|
|
job.croner = null;
|
|
|
|
}
|
2022-04-05 04:41:29 -07:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2021-09-27 08:40:38 -07:00
|
|
|
module.exports = {
|
2022-04-05 04:41:29 -07:00
|
|
|
initBackgroundJobs,
|
|
|
|
stopBackgroundJobs
|
2021-09-27 08:40:38 -07:00
|
|
|
};
|