【问题标题】:node.js cron job not startsnode.js cron 作业未启动
【发布时间】:2015-08-03 07:01:28
【问题描述】:

我使用 express.js 和 'cron' 模块进行自动数据库更新,所以我不知道应该在哪里添加我的 cron 初始化代码,所以我将它添加到我的 app.js 文件中,但是在服务器启动并等待 3 分钟之后我现在在控制台看到消息。

var cronJob=require('cron').CronJob;
new cronJob('* */3 * * * *', function(){ // i think that means every 3 minutes 
    console.log('Every 3 minutes');
    catalogUpdater.catalogUpdater(function(err, result){
        if(err) {
            log.err("router " + err);

        }else {
            log.warn(result);
            descriptionDownloader.descriptionDownloader(function(err, result){
                if(err) log.err(err);


            });
        }
    });
});

那么我需要把我的 cron 开始工作放在哪里?

【问题讨论】:

  • 您好像要在浏览器中每三分钟更新一次客户端页面?
  • 不,我只是想设置数据库更新函数的cron间隔,所以每3分钟运行一次catalogUpdater.catalogUpdater(..)函数
  • 那你为什么叫函数页面渲染res.render
  • 抱歉,没有从控制器中删除代码

标签: javascript node.js cron


【解决方案1】:

要启动 cron 作业,您需要调用 job.start() 或将 true 作为作业构造函数的第四个参数传递:

constructor(cronTime, onTick, onComplete, start, timezone, context)

附:如果您使用经典的框架 Express 应用程序,您应该创建一个任务以放入一个单独的文件并将其连接到主文件 bin/www

【讨论】:

  • Thx,所以我创建了文件 updareCron.js ,所以我可以通过添加到 'www' 来使用它 require('updateCron'); ?
  • 是的,作为一个选项。另外,如果有多个任务,可以在项目中创建一个单独的文件夹,代号为cron,将任务拆分成单独的文件,将整个文件夹连接起来。
猜你喜欢
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 2020-01-21
  • 2012-07-02
相关资源
最近更新 更多