如何在单独的文件node.js中编写cronjobs

时间:2019-12-18 08:24:40

标签: node.js node-cron

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

我想将其分离到另一个文件中以提高可读性,但是我找不到在线任何解决方案或示例。请帮忙。

我想将其写在一个单独的文件中,就像编写路线一样。

([xml](svn info --xml)).info.entry.URL

3 个答案:

答案 0 :(得分:1)

是的。您可以在separte文件中编写您的cron-job。启动服务器时,您可以像在app.jsserver.js中那样调用cron作业。您只需导出您的Cron作业文件并在此处进行查询

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

答案 1 :(得分:0)

node-cron 模拟而不是使用cron文件条目驱动的UNIX / Linux / FreeBSD crontab子系统。 node-cron产生了一种幻觉,即可以对正在运行的nodejs实例中的功能进行调度,就好像它们是可执行程序一样。

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

答案 2 :(得分:0)

您可以像这样在 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