node.js - node-cron 无法正常工作?

标签 node.js heroku cron

我在 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 插件;

最佳答案

你的 cron 作业再也不会运行,因为 Heroku dyno 进入休眠状态。 https://devcenter.heroku.com/articles/dynos#dyno-sleeping

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

希望对你有帮助!

关于node.js - node-cron 无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27289269/

相关文章:

bash - 在 heroku 上运行 bash 是行不通的

linux - 如何在 Linux 中添加一个 cron 作业

bash - Crontab - 从 ~/.bashrc 传递环境变量

javascript - 如何从 JSON 对象中获取匹配的键值?

node.js - Node 应用程序在本地主机上运行,​​而不是在服务器上运行(Digitalocean、express.js)

postgresql - Mac OS X 10.11 - 将 Postgres 添加到 $PATH 失败

python - Heroku:私有(private)存储库中的 Python 依赖项而不存储我的密码

node.js - Plesk JXcore 安装 NPM 模块失败

node.js - 我可以在单独的模块中路由 Express Controller 和基本 NodeJS 服务器吗

linux - crontab 不执行复杂的 bash 脚本