NodeJS 动态服务加载器和运行器
NodeJS Dynamic Service Loader & Runner
上下文:
我正在尝试为我活跃的频道构建一些 slack hooks / 通知服务,作为 cheap-skate 我是一个精通金融的人,我我想使用这样的免费服务(跟踪 Heroku 帐户或类似产品),因此我希望能够 运行 在单个实例上使用多项服务。
我已经创建了一个通用的 运行ner,它应该基于配置并且能够获取一些节点模块并为它们提供配置设置。
我正在使用以下 node_modules:
"auto-loader": "^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 计划,我的服务就会受到影响,因此我的假设如下...
要么我在概念上遗漏了一些关于 运行ning 进程在 NodeJS 中工作的时间(因为这是我的第一个),要么我遗漏了一个对我来说超级(不明显)的错误.
如何在 NodeJS 中使用单独的计划代码段/任务创建长 运行ning task/process?
代码本身按预期工作。问题似乎与 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
上下文:
我正在尝试为我活跃的频道构建一些 slack hooks / 通知服务,作为 cheap-skate 我是一个精通金融的人,我我想使用这样的免费服务(跟踪 Heroku 帐户或类似产品),因此我希望能够 运行 在单个实例上使用多项服务。
我已经创建了一个通用的 运行ner,它应该基于配置并且能够获取一些节点模块并为它们提供配置设置。
我正在使用以下 node_modules:
"auto-loader": "^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 计划,我的服务就会受到影响,因此我的假设如下...
要么我在概念上遗漏了一些关于 运行ning 进程在 NodeJS 中工作的时间(因为这是我的第一个),要么我遗漏了一个对我来说超级(不明显)的错误.
如何在 NodeJS 中使用单独的计划代码段/任务创建长 运行ning task/process?
代码本身按预期工作。问题似乎与 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