【问题标题】:Heroku clock process already runs job when pushed to serverHeroku 时钟进程在推送到服务器时已经运行作业
【发布时间】:2019-04-01 21:38:29
【问题描述】:

我正在使用 Heroku 时钟进程来安排作业运行。这是我的 procfile。

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

以下是我的 clock.js,它应该每隔 30 分钟运行一次。

const CronJob = require('cron').CronJob;
const worker = require('./worker');

const job = new CronJob({
    cronTime: "30 */1 * * *",
    onTick: worker.start(),
    timeZone: "Asia/Ho_Chi_Minh"
});

job.start();

我的 worker.js 保存要执行的代码

exports.start = () => {
    // Code to be ran
};

当我将更改推送到 Heroku 时,我的时钟测功机立即执行代码,并且在 30 点过去时什么都没有发生。

知道我是否遗漏了什么?

【问题讨论】:

    标签: javascript node.js heroku cron


    【解决方案1】:

    尝试删除 worker.start 末尾的 ()。括号使函数立即运行。

    【讨论】:

    • 啊哈,有道理。你以前用过时钟过程吗?它似乎也没有在应该运行的时候运行,但这也可能是因为 () 。我查一下,谢谢
    • 我之前没用过cron,但我认为这和setTimeout在你的函数后面使用()不起作用的概念是一样的。
    猜你喜欢
    • 2016-08-17
    • 1970-01-01
    • 2011-04-17
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 2016-01-04
    相关资源
    最近更新 更多