如何在单独的文件nodejs中编写cron作业

How to write cronjobs in seperate file nodejs

我想在 node.js 上编写一个每分钟运行一次的 cron 作业。我在网上看到的教程都显示 cron 作业正在写在 "App.js" 或 "server.js" 文件中,这是 nodejs 上的主要文件。

我想将它分成另一个文件以提高可读性,但我无法在网上找到任何解决方案或示例。请帮忙

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

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

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

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

import cronJob from "../filename.js"        
server.listen(3000, () => {
   cronJob.start();
});

node-cron 模拟,而不是使用 UNIX / Linux / FreeBSD cron subsystem driven by crontab 文件条目。 node-cron 产生一种错觉,即 运行 nodejs 实例中的函数可以像可执行程序一样进行调度。

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

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

app.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}`)
});

tasks.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