我如何 运行 我的节点 js 脚本自动使用服务器上的调度程序

How can I run my node js script automatically using scheduler on server

我使用 express 环境创建了一个 nodejs 文件,并使用 nodemon 在服务器上运行创建了该文件。目前我必须向接口发出命令 运行 nodemon 上的特定文件,但我目前需要的是在一天内多次自动将任务安排到服务器上的 运行 该文件。

我的文件在终端上是这样执行的::

nodemon example_api.js

输出终端:

    root@*********:/var/www/example project# nodemon example_api.js
[nodemon] ##.##.#####
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node api.js`
Listening on port 8080

注意:我目前 运行正在使用 windows 的 Mobaxterm 终端上的 node js,但我的文件将 运行 在 [=28] 的服务器上=]界面

对于简单的实现 - 您可以像这样使用 setInterval

setInterval(() => {
    // do something every 5 seconds
}, 5000);

但是如果你想要像 cron 这样的东西,那么,你可能想要 node-cron or node-schedule

您还可以使用 AWS CloudWatch 等提供商。 AWS CloudWatch 允许您在 cron 上 运行 AWS Lambda 函数。

1.如果你想 运行 你的节点连续处理并且只想 运行 特定任务:

在需要的时间或间隔使用 node-schedule or node-cron 包 运行 您的代码块。

i.node-schedule

var schedule = require('node-schedule');

var j = schedule.scheduleJob('*/30 * * * * ', function(){
  console.log('The answer to life, the universe, and everything!');
});

ii.node-cron

var cron = require('node-cron');

cron.schedule('*/30 * * * *', function(){
  console.log('The answer to life, the universe, and everything!');
});

2。如果你只想运行单节点脚本:

您可以使用 Linux crontab 在需要的时间执行您的脚本

crontab -e

并添加以下条目

*/30 * * * * /usr/local/bin/node /home/ridham/example/script.js

这将每 30 分钟执行一次 /home/ridham/example/script.js。并始终在此处提供完整的限定路径。

您必须在以下任何一项中提供 crontime。你可以了解 crontime here