在节点 js 中每 2 年安排一次 cron
Schedule a cron once in every 2 years in node js
我想每 2 年为 运行 安排一个脚本。谁能帮我解决这个问题。我找不到添加年份的字段。
大多数 cron 调度程序不会解析年份组件,我不知道有任何程序会为 Node.js 执行此操作。
但是,您可以通过检查 运行 启动 cron 函数的年份来很容易地模拟此行为。
例如,使用优秀的cron模块:
const CronJob = require("cron").CronJob;
// Fire on July 6th at 11:42
const cronExpression ="42 11 6 6 *";
const cronJob = new CronJob(
cronExpression,
cronFunction
);
// Return true if the proc. should fire on the year in question.
// In the example below it will fire on even years.
function yearFilter(year) {
return (year % 2) === 0;
}
function cronFunction() {
if (!yearFilter(new Date().getFullYear())) {
return;
}
// Do whatever below...
console.log("cronFunction: Running....");
}
// Get the next dates the job will fire on...
const nextDates = cronJob.nextDates(10);
console.log("Next dates the job will run on:", nextDates.filter(d => yearFilter(d.year())).map(d => d.format("YYYY-MM-DD HH:mm")));
cronJob.start();
在此示例中,我们还打印作业将在接下来的 5 个日期启动。
在这个例子中:
Next dates the job will run on: [
'2022-07-06 11:42',
'2024-07-06 11:42',
'2026-07-06 11:42',
'2028-07-06 11:42',
'2030-07-06 11:42'
]
我想每 2 年为 运行 安排一个脚本。谁能帮我解决这个问题。我找不到添加年份的字段。
大多数 cron 调度程序不会解析年份组件,我不知道有任何程序会为 Node.js 执行此操作。
但是,您可以通过检查 运行 启动 cron 函数的年份来很容易地模拟此行为。
例如,使用优秀的cron模块:
const CronJob = require("cron").CronJob;
// Fire on July 6th at 11:42
const cronExpression ="42 11 6 6 *";
const cronJob = new CronJob(
cronExpression,
cronFunction
);
// Return true if the proc. should fire on the year in question.
// In the example below it will fire on even years.
function yearFilter(year) {
return (year % 2) === 0;
}
function cronFunction() {
if (!yearFilter(new Date().getFullYear())) {
return;
}
// Do whatever below...
console.log("cronFunction: Running....");
}
// Get the next dates the job will fire on...
const nextDates = cronJob.nextDates(10);
console.log("Next dates the job will run on:", nextDates.filter(d => yearFilter(d.year())).map(d => d.format("YYYY-MM-DD HH:mm")));
cronJob.start();
在此示例中,我们还打印作业将在接下来的 5 个日期启动。
在这个例子中:
Next dates the job will run on: [
'2022-07-06 11:42',
'2024-07-06 11:42',
'2026-07-06 11:42',
'2028-07-06 11:42',
'2030-07-06 11:42'
]