在Heroku的免费应用程序中,dyno似乎一直在空转——我的应用程序流量很低,但在我的情况下,我的用户不得不等待20多秒才能启动一个新的dyno,这也是不能接受的。
坦率地说,在这样的等待下,许多人甚至在第一页显示之前就离开了。
所以,我遇到了一个问题:当我每天的流量都在个位数时,我是否应该每月支付36美元来为每个用户节省令人尴尬的漫长20秒?
有没有办法解决这个问题?
在Heroku的免费应用程序中,dyno似乎一直在空转——我的应用程序流量很低,但在我的情况下,我的用户不得不等待20多秒才能启动一个新的dyno,这也是不能接受的。
坦率地说,在这样的等待下,许多人甚至在第一页显示之前就离开了。
所以,我遇到了一个问题:当我每天的流量都在个位数时,我是否应该每月支付36美元来为每个用户节省令人尴尬的漫长20秒?
有没有办法解决这个问题?
当前回答
你也可以试试http://kaffeine.herokuapp.com(由我制作),它是为了防止Heroku应用程序进入睡眠。它将每10分钟ping你的应用程序,所以你的应用程序不会进入睡眠状态。完全免费。
其他回答
请注意,新的动态类型(目前是测试版,将于2015年6月发布)将禁止让一个免费的动态保持24/7的唤醒状态,因为它必须每天至少睡6个小时。
所以试着在这篇文章出来之前删除你在这篇文章中找到的任何解决方案(或者为你实际使用的服务付费)。
答案很简单——如果你看重服务,那就付钱。
所有这些获得付费服务的“技巧”……这就像偷有线电视一样。甚至在这里列出它们都是值得怀疑的。接下来是什么,盗版游戏的技巧吗?
就像这里的另一个帖子一样,我很重视开发和测试的免费服务,如果Heroku因为有太多的白吃白喝的人而取消它,我会对你们这些道德受损的人感到非常恼火。我只是觉得他的批评不够直接。
使用Node.js 0.10在我自己的Heroku应用上进行了测试和工作。X在2013年6月28日
var http = require('http'); //importing http
function startKeepAlive() {
setInterval(function() {
var options = {
host: 'your_app_name.herokuapp.com',
port: 80,
path: '/'
};
http.get(options, function(res) {
res.on('data', function(chunk) {
try {
// optional logging... disable after it's working
console.log("HEROKU RESPONSE: " + chunk);
} catch (err) {
console.log(err.message);
}
});
}).on('error', function(err) {
console.log("Error: " + err.message);
});
}, 20 * 60 * 1000); // load every 20 minutes
}
startKeepAlive();
我已经写下了步骤:
➜将gem 'newrelic_rpm'添加到您的Gemfile下的staging & production ➜bundle install ➜登录到heroku控制面板并添加newrelic插件 ➜一旦添加,设置自动ping到你的网站,这样它就不会闲置 ➜浏览菜单>可用性监控(在设置下) →点击“开启可用性监控” ➜输入要ping的url(例如:http://spokenvote.org) ➜选择1分钟为间隔
你也可以试试http://kaffeine.herokuapp.com(由我制作),它是为了防止Heroku应用程序进入睡眠。它将每10分钟ping你的应用程序,所以你的应用程序不会进入睡眠状态。完全免费。