经过一些Chrome调试后,我注意到醒来需要将近6秒的时间,这是不可接受的。
根据你的计算方式,大约有5-10种方法可以让它保持清醒:一个谷歌搜索会拉出无数的站点和方法来做到这一点。
有些方法建议定期敲击,而另一些方法则建议定期请求。
我使用了常规的GET请求,因为它只是要添加到服务器上的一个小文件:
const http = require("http");
let INTERVAL = 300000; // 5 minute, keep a let for debugging
INTERVAL = 600000; // 10 minutes
const SITE = "http://www.your-site.ai";
let count = 0;
setInterval( () => {
count++;
wakeSite();
}, INTERVAL);
function wakeSite() {
const output = http.get(SITE);
console.log('DEBUG: ' + count);
}
function interface () {}
wakeSite();
module.exports = interface;在Heroku文档中,应该将间隔设置为什么以及在何处记录?
根据7年前的Heroku文章,应用程序在1小时后就会进入睡眠状态。
这是否仍然有效,是什么唤醒了一个应用程序?一个简单的ping请求,还是需要一个完整的请求。Heroku是否支持该应用程序的常规“冲撞”?
发布于 2019-06-30 03:08:37
如果一个应用程序有一个免费的web,而该dyno在30分钟内没有接收到网络流量,它就会休眠。
https://devcenter.heroku.com/articles/free-dyno-hours
连接到一次性dynos将关闭后,一个小时的不活动(在输入和输出)。当连接关闭时,dyno将被发送到SIGHUP。此空闲超时有助于防止意外费用使交互式控制台会话处于打开状态和未使用状态。
https://devcenter.heroku.com/articles/limits#dynos
所以任何网络流量都会唤醒它
关于如何预防它,已经有足够的答案,比如这一个。
发布于 2019-06-30 14:49:34
经过一些Chrome调试后,我注意到醒来需要将近6秒的时间,这是不可接受的。
如果这是“不可接受的”,你应该支付一个爱好-层次(或更高) dyno。他们从不睡觉,并带来像ACM这样的额外好处。
如果你坚持在免费的层,请记住,您可以使用的免费dyno小时数是有限的。
帐户的基数是每月550个免费的dyno小时。除了这些基本时间外,用信用卡核实还将在每月免费的dyno配额中增加450个小时的帐户。这意味着,如果你用信用卡核实你的账户,你每月可以收到1000多个免费的dyno小时。
450小时大约是23天(显然不足以运行整整一个月),这些时间是在您帐户中的所有免费dynos之间共享的。即使有一个经过验证的帐户,你每月也只有大约41个小时--不足以经常运行两个dynos。
https://stackoverflow.com/questions/56821975
复制相似问题