此终端命令重新启动我的heroku应用程序:
heroku restart
有没有办法运行一个脚本,每小时运行一次这个命令并重新启动我的应用程序?
此终端命令重新启动我的heroku应用程序:
heroku restart
有没有办法运行一个脚本,每小时运行一次这个命令并重新启动我的应用程序?
实际上,我只是需要为我的应用程序解决这个问题,并在上面写了一篇文章,其中包含了更多细节.基本上,您现在需要heroku api gem,因为heroku gem已被CLI取代.然后你需要一个rake任务,几个配置变量和heroku调度器插件(除了最短的dyno时间外,其他都是免费的).
rake任务如下所示:
namespace :heroku do
desc 'restarts all the heroku dynos so we can control when they restart'
task :restart do
Heroku::API.
new(username: ENV['HEROKU_USERNAME'], password: ENV['HEROKU_PASSWORD']).
post_ps_restart(ENV['HEROKU_APP_NAME'])
end
end
您还可以将其设置为使用API令牌,而不是将用户名和密码放入配置中.只有当你不想让你的共同贡献者/同事知道你的密码或你在Heroku上的主帐户密码时,这才重要.
heroku config:set HEROKU_USERNAME=[username] HEROKU_PASSWORD=[password] HEROKU_APP_NAME=[app_name] -a [app_name]
现在,继续部署和测试:
git push [heroku_remote_name] [feature_branch]:master
heroku run rake heroku:restart -a [app_name]
最后,我们需要设置任务以按计划运行它.我 Select 了免费的Heroku cron插件:
heroku addons:add scheduler:standard -a [app_name]
heroku addons:open scheduler -a [app_name]
这将打开浏览器中的调度程序UI,您可以创建一个调度工作程序,以便随时运行rake任务.我们每天只需要一次,我们 Select 在当天的第一个计划作业(job)之前运行它.
我的原始帖子使用了糟糕的CSS(见下面的更新2):
UPDATE
我将任务的名称从"内爆"改为"重启",以便更清楚地了解正在发生的事情.内爆是一个有趣的名字,但在其他方面几乎毫无用处.
UPDATE2
显然我的公司删除了这篇博文.我在这里添加了更多代码,并更新了链接,但CSS看起来像是狗扔的.抱歉.