我想尝试每天上午10点在命令提示符下运行此文件,但是此代码似乎不起作用。
const schedule = require("node-schedule");
var dailyJob = schedule.scheduleJob("0 0 10 * *", function() {
console.log("Its connecting to database....");
});
dailyJob.start();
答案 0 :(得分:0)
您必须在后台运行脚本或将其作为服务。
有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');
运行此命令时,它每秒记录一次新行吗?
太好了!
那么如何在后台或作为服务运行它?这里也有很多选项,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
和平!
答案 1 :(得分:0)
您似乎误解了调度程序的工作方式。调度程序仅在脚本运行时才起作用。如果停止脚本,则调度程序将无法工作。因此,如果您的脚本不在上午10点运行,它将无法执行您的功能。
如果要在不运行脚本的情况下执行脚本,则需要在系统中注册cronjob。
对于Linux,您创建一个script.js
文件,然后调用crontab -e
在此行添加cronjob:
0 10 * * * node /path/to/script.js
这将每天上午10点运行您的脚本。有关更多信息,请参见this wiki。