在 node-cron 中获取下一个 cron 作业时间

Sol*_*bea 8 javascript cron node.js node-modules node-cron

在node-cron中,如何获取下一个cron作业的时间?例如 cronJob.nextCronJob().time 或其他属性。文档中没有任何方法可以证明这一点。

Ter*_*nox 7

我不知道有什么方法可以使用node-cron模块来实现这一点。但是,您可以使用cron模块执行此操作,使用 cronJob.nextDates() 函数,如下所示:

const CronJob = require("cron").CronJob;

const cronJob = new CronJob(
    "*/30 * * * * *",
    () => {
        console.log("Timestamp: ", new Date());
    },
    null,
    true
);

setInterval(() => { 
    console.log("Next job time:", cronJob.nextDates().toISOString());
}, 5000);
Run Code Online (Sandbox Code Playgroud)

如果您必须使用 node-cron 模块,您可以查看cron-parser,这将解析 cron 表达式并为您提供下一个运行时间,例如

const parser = require('cron-parser');

const cronExpression = "*/30 * * * * *";
const interval = parser.parseExpression(cronExpression);
console.log('Next run:', interval.next().toISOString());
Run Code Online (Sandbox Code Playgroud)

  • 或者简单地“cronJob.nextDates().toISOString()”。如果没有参数,`nextDates()` 将返回下一个运行时间。 (3认同)