如何在特定时间将时间表设置为运行 特定文件?

How to set schedule to run a certain file at a certain timing?

我想在每天上午 10 点在命令提示符下尝试 运行 这个文件,但这段代码似乎不起作用。

const schedule = require("node-schedule");
var dailyJob = schedule.scheduleJob("0 0 10 * *", function() {
   console.log("Its connecting to database....");
});
dailyJob.start();

您必须在后台安装脚本 运行ning 或将其作为一项服务。

第 1 步:制作日程脚本

many packages 用于调度,大多数是基于 cron 的。

这是一个带有 cron 包的示例,

var CronJob = require('cron').CronJob;
new CronJob('* * * * * *', function() {
  console.log('You will see this message every second', Date.now());
}, null, true, 'America/Los_Angeles');

当你运行这个时,它是否每秒记录一个新行?

太棒了!

第 2 步:在背景中制作运行

那么您如何 运行 它在后台或作为服务?这里也有很多选项,foreverpm2systemctl等。我将使用pm2

过去安装pm2,

npm i -g pm2

在后台启动您想要运行的脚本,

pm2 start index.js --name=run-every-second

查看日志,

pm2 logs run-every-second

它会在后台继续 运行,

您甚至可以 运行 在启动时使用,

pm2 startup
pm2 save

和平!

您似乎误解了调度程序的工作原理。只要您的脚本是 运行ning,调度程序就会工作。如果您停止脚本,调度程序将无法工作。因此,如果您的脚本在上午 10 点未 运行ning,它将不会执行您的函数。

如果你想在没有脚本的情况下执行脚本 运行ning 你需要在系统中注册一个 cronjob。

对于 Linux,您创建一个 script.js 文件,然后调用 crontab -e 以使用以下行添加一个 cronjob:

0 10 * * * node /path/to/script.js

这将在每天上午 10 点 运行 您的脚本。有关更多信息,请参阅 this wiki on Whosebug。