我想尝试在每天上午 10 点在命令提示符下运行此文件,但此代码似乎不起作用。
const schedule = require("node-schedule");
var dailyJob = schedule.scheduleJob("0 0 10 * *", function() {
console.log("Its connecting to database....");
});
dailyJob.start();
我想尝试在每天上午 10 点在命令提示符下运行此文件,但此代码似乎不起作用。
const schedule = require("node-schedule");
var dailyJob = schedule.scheduleJob("0 0 10 * *", function() {
console.log("Its connecting to database....");
});
dailyJob.start();
您必须让脚本在后台运行或将其作为服务。
有许多用于调度的包,大多数是基于 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');
当你运行它时,它是否每秒记录一个新行?
伟大的!
那么如何在后台或作为服务运行它呢?这里也有很多选项forever
,pm2
,systemctl
等。我会使用pm2
.
过去安装pm2
,
npm i -g pm2
启动要在后台运行的脚本,
pm2 start index.js --name=run-every-second
检查日志,
pm2 logs run-every-second
它将继续在后台运行,
你甚至可以让它在启动时运行等等使用,
pm2 startup
pm2 save
和平!
您似乎误解了调度程序的工作原理。只要您的脚本正在运行,调度程序就会工作。如果您停止脚本,调度程序将无法工作。所以如果你的脚本没有在上午 10 点运行,它就不会执行你的函数。
如果您希望在不运行脚本的情况下执行脚本,则需要在系统中注册一个 cronjob。
对于 Linux,您创建一个script.js
文件,然后使用以下行调用crontab -e
以添加一个 cronjob:
0 10 * * * node /path/to/script.js
这将在每天上午 10 点运行您的脚本。有关更多信息,请参阅stackoverflow 上的此 wiki。