在node中使用定时任务node-cron

1,036 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 6 天,点击查看活动详情

只需要三步:

1.终端安装命令:npm i node-cron
2.引入项目:const nodeCron = require("node-cron");/import nodeCron from "node-cron";
3.const job = nodeCron.schedule("* * * * * *", function jobYouNeedToExecute() {
//在这中间放任何想要执行的操作,例如打印出当前时间console.log(new Date().toLocaleString());
}, true, "America/Sao_Paulo");

nodeCron.schedule方法的三个参数:

expression nodeCron.schedule(expression, function, options);

第一个参数是cron 表达式。可以使用此表达式来指定应执行任务的时间(或次数),表达式应采用* * * * * *格式。您可以用适当的数字(或可能的字符)替换每个*字段。

第二个参数是一个函数,它是第一个参数中的表达式执行的任务。你可以在这个函数中做任何你想做的事情。您可以发送电子邮件、进行数据库备份或下载数据。若当前系统时间与第一个参数中提供的时间相同时,将执行此函数。

第三个参数是可选的,可以传递给该方法进行其他配置。


第三个参数:
{
   scheduled: false,
   timezone: "America/Sao_Paulo"
}
job.start();
默认情况下scheduled是true. 如果将其设置为false,则必须通过调用对象start上的方法来安排作业job。job是调用schedule方法返回的对象。

怎么理解cron表达式?

cron 表达式的第一个参数schedule,是一个字符串"* * * * * *"。我们用它来描述任务应该执行的时间。表达式中的每个*都是一个字段,您可以在下图中看到每个*字段代表的意义。

"* * * * * *"
 | | | | | |
 | | | | | |
 | | | | | day of week
 | | | | month
 | | | day of month
 | | hour
 | minute
 second(optional)

v2-6116cf2886ed4efe46a56a108b0be78e_720w.jpg

tips:有一个方便的工具叫做crontab guru,它可以为你解释 crontab 表达式。如果您输入一个表达式,它将验证该表达式并告诉您何时执行任务。如果您不确定表达式,可以使用它。