Heroku自定义时钟过程无法使用Cron以每个间隔运行



我不确定我在做什么错,但我正在尝试遵循本文。我有以下procfile:

web: node index.js
worker: node bot.js
clock: node clock.js

和我的时钟内部,我有:

var CronJob = require('cron').CronJob;
var bot = require('./bot.js');
new CronJob({
    cronTime: "* * * * *",
    onTick: bot.start(),
    start: true,
    timeZone: "America/Los_Angeles"
});

和我的bot.js的结构是如此:

var config = require('./config');
// ... other includes
module.exports = {
    start: function() {
        // code
    }
}

我的结构与文章几乎完全匹配,但是发生了什么?这是我的日志:

2016-12-16T06:00:48.935847+00:00 heroku[web.1]: Starting process with command `node index.js`
2016-12-16T06:00:49.332925+00:00 heroku[worker.1]: Starting process with command `node bot.js`
2016-12-16T06:00:49.736519+00:00 heroku[clock.1]: Starting process with command `node clock.js`
2016-12-16T06:00:50.058125+00:00 heroku[worker.1]: State changed from starting to up
2016-12-16T06:00:50.395082+00:00 heroku[clock.1]: State changed from starting to up
2016-12-16T06:00:51.899971+00:00 app[web.1]: app running on port 21470
2016-12-16T06:00:52.505353+00:00 heroku[worker.1]: State changed from up to crashed
2016-12-16T06:00:52.491705+00:00 heroku[worker.1]: Process exited with status 0
2016-12-16T06:00:52.698864+00:00 heroku[web.1]: State changed from starting to up

因此,我可以看到我正在启动该工人(无能为力),然后崩溃。然后我的时钟开始了,但是再也没有打电话给工人?绝对不是每一分钟启动。

我遵循的文章不再适用吗?我应该如何正确致电工人?

您是否有一个process.exit(0)命令bot.start()?

Heroku碰到命令时撞车(有关更多信息,请参见此链接)。如果删除该问题,则可能会解决问题。发布完整的bot.START函数要验证将很有帮助。

最新更新