【问题标题】:node-cron does not work properly?node-cron 不能正常工作?
【发布时间】:2015-02-02 01:14:40
【问题描述】:

我在 Heroku 上部署了一个应用程序:myapp

我在里面写了一些 cron 代码:

var time = require('time');
var CronJob = require('cron').CronJob;
var job = new CronJob({
    cronTime: '00 45 12 * * *',
    onTick: clearReserve,
    start: true,
    timeZone: 'Asia/Shanghai'
});

我的目的是每天在特定时间调用名为“clearReserve”的函数。 但它只在我将代码上传到 heroku 的第一天起作用,并且再也不会做这个 cron 工作了。

PS:这个“clearReserve”函数将操作我的数据库,我使用的是我在 MongoLab 中创建的 MongoLab URI,而不是 Heroku 插件;

【问题讨论】:

    标签: node.js heroku cron


    【解决方案1】:

    由于 Heroku dyno 进入睡眠状态,您的 cron 作业再也不会运行。 https://devcenter.heroku.com/articles/dynos#dyno-sleeping

    为了让您的 cron 作业执行,您需要让 Heroku 应用 24/7 保持清醒。为了确保您的 Heroku 应用程序不会进入睡眠状态,请安装 NewRelic Heroku 插件,您可以设置可用性监控。您提供了一个 URL,NewRelic 每 30 秒 ping 一次,从而使您的应用保持唤醒状态。此功能的预期目的是在您的网站因业务和性能原因出现故障时提醒您,但它还有一个额外的好处是可以防止您的应用闲置。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      相关资源
      最近更新 更多