2

我想在node.js上编写一个每分钟运行的 cron 作业。我在网上查看的教程都显示了将 cron 作业写入 nodejs 上的主文件“App.js”或“server.js”文件中。

我想将其分离到另一个文件中以获得更好的可读性,但我在网上找不到任何解决方案或示例。请帮忙。

我想把它写在一个单独的文件中,就像我们写我们的路线一样。

const cron = require("node-cron");

cron.schedule("* * * * *", function() {
    console.log("running a task every minute");
});
4

3 回答 3

4

是的。您可以在单独的文件中编写您的 cron-job。启动服务器时,您可以调用您的 cron 作业,例如在您的app.jsserver.js. 您只需导出您的 cron 作业文件并在此处导入

import cronJob from "../filename.js"        
server.listen(3000, () => {
   cronJob.start();
});
于 2019-12-18T08:45:23.920 回答
1

您可以在 express/node.js 应用程序的其他地方创建和导出 javascript 模块,如下所示:

应用程序.js

const express = require('express');

const app = express();
const port = 5000;

require('./tasks/tasks')();

app.listen(port, () => {
    console.log(`App listening at http://localhost:${port}`)
});

任务.js

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

module.exports = () => {  
    cron.schedule('* * * * *', () => {
        console.log('running a task every minute');
    });
}

终端:

[nodemon] starting `node start app.js`
App listening at http://localhost:5000
running a task every minute

文件结构:

/tasks
    tasks.js
app.js
于 2021-06-18T02:14:40.997 回答
0

node-cron 模拟,而不是使用,由crontab文件条目驱动的 UNIX / Linux / FreeBSD cron子系统。投射出运行中的 nodejs 实例中的函数可以像可执行程序一样被调度的错觉。node-cron

如果您想将不同的 nodejs 程序安排为 cron 作业,请不要使用node-cron,使用 cron。在操作系统的 crontab 中添加一个提及 nodejs 程序的条目。

于 2019-12-18T08:46:51.340 回答