【问题标题】:NodeJS Dynamic Service Loader & RunnerNodeJS 动态服务加载器和运行器
【发布时间】:2017-06-06 11:37:11
【问题描述】:

上下文:

我正在尝试为我活跃的频道构建一些松弛挂钩/通知服务,我想成为 cheap-skate 精通金融的人使用免费服务(跟踪 Heroku 帐户或类似产品),因此我希望能够在单个实例上运行多个服务。

我创建了一个通用运行器,它应该基于配置,并且能够获取一些节点模块并为它们提供配置设置。

我正在使用以下节点模块:

"自动加载器": "^0.2.0", "node-cron": "^1.2.0", "read-yaml": "^1.1.0"

config.yml

foo: 
  cron: 1 * * * *
  url: http://www.foo.com
  team: 
    - 
      slackId: bar
      bnetId: 1
      eloId: 1
    - 
      slackId: baz
      bnetId: 2
      eloId: 2

app.js

const autoLoader = require('auto-loader');
const readYaml = require('read-yaml');
const cron = require('node-cron');

const services = autoLoader.load(__dirname +'/services')

readYaml('config.yml', function(err, conf) {

    if (err) throw err;

    Object.keys(conf).forEach(function (key) {

        console.log('Creating CRON for ' + key);

        if(cron.validate(conf[key].cron)) {             

            console.log(conf[key].cron, '-> is valid cron');

            // the cron task below does not seem to fire ever
            cron.schedule(conf[key].cron, function(){
                services[key](conf[key]);
            });

        } else {
            console.log('Cron invalid for::' + key)
        }

    }); 
});

service/foo.js

module.exports = function (config) {
    console.log('foo entered!!');
    console.log(config)
}

问题:

我错过了什么?如果我删除 cron 计划,我的服务会受到影响,因此我的假设如下......

要么我在概念上遗漏了一些关于在 NodeJS 中运行进程意味着多长时间的东西(因为这是我的第一个),要么我遗漏了一个对我来说超级(不明显)的错误。

如何在 NodeJS 中使用单独的计划代码部分/任务创建一个长时间运行的任务/进程?

【问题讨论】:

    标签: node.js service cron long-running-processes


    【解决方案1】:

    代码本身按预期工作。问题似乎与 cron 的配置有关。

    cron: 1 * * * * 将在整点后 1 分钟运行。

    cron: "*/1 * * * *"      # would run it every minute
    cron: "*/5 * * * *"      # would run it every 5 minutes
    cron: "*/10 * * * * *"   # would run every 10 seconds
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多