我有点困惑,因为在heroku API中曾经有一个方法来重启应用程序的进程。
现在这个API似乎已被弃用,所有链接都指向https://devcenter.heroku.com/articles/platform-api-reference,我找不到任何有关重启的信息(即使是单词restart
本身)。
有人可以对此有所了解吗?我相信这是显示日志,它是开发人员最重要的API命令之一,因为你可以通过heroku webui完成大部分其他任务。
答案 0 :(得分:4)
您可以使用heroku platform-api执行此操作。有一个dyno重启方法for the api.。以下是如何处理rake任务的示例。
首先,您需要设置凭据。从您的开发机器
$ heroku plugins:install heroku-cli-oauth
然后
$ heroku authorizations:create -d "Platform API token"
这将输出许多字段,包括令牌字段。制作令牌值的副本,比如它是abc-def。然后
heroku config:set OAUTH_TOKEN=abc-def
在生产计算机上设置OAUTH_TOKEN值。 您的rake任务可能如下所示:
desc 'heroku_restart'
task heroku_restart: :environment do
heroku = PlatformAPI.connect_oauth(ENV['OAUTH_TOKEN'])
dynos = heroku.dyno.list(ENV['HEROKU_APP_NAME'])
heroku.dyno.restart(ENV['HEROKU_APP_NAME'], dynos[0]['name'])
end
这将重启dynos列表中的第一个dyno。现在提交此更改并部署到生产环境,您的rake任务已准备就绪。
答案 1 :(得分:1)
您必须使用Dyno删除:https://devcenter.heroku.com/articles/platform-api-reference#dyno-delete
如果删除一次性dyno,它将不会重新启动,如果它在地层中定义,它将重新启动。
我们会改进文档,谢谢你指出这个遗漏。
答案 2 :(得分:0)
这通过终端对我有用(您需要先安装 Heroku CLI);
curl -n -X DELETE https://api.heroku.com/apps/<your app name/id>/dynos -H "Content-Type: application/json" -H "Accept: application/vnd.heroku+json; version=3"