2

我有点困惑,因为 heroku API 中曾经有一种方法可以重新启动应用程序的进程。现在这个 API 似乎已被弃用,所有链接都指向https://devcenter.heroku.com/articles/platform-api-reference,我在其中找不到任何有关重启的信息(甚至是单词restart本身)。

有人可以解释一下吗?我相信,除了显示日志之外,这也是开发人员最重要的 API 命令之一,因为您可以通过 heroku webui 完成大多数其他任务。

4

3 回答 3

5

您可以使用 heroku platform-api来执行此操作。api有一个dyno重启方法. 这是一个如何处理 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

这将重新启动测功机列表中的第一个测功机。现在提交此更改并部署到生产环境,您的 rake 任务已准备就绪。

于 2017-06-27T10:02:14.227 回答
1

您必须使用 Dyno 删除:https ://devcenter.heroku.com/articles/platform-api-reference#dyno-delete

如果您删除一次性测功机,它将不会重新启动,如果它在编队中定义,它将重新启动。

我们将改进文档,感谢您指出这个遗漏。

于 2013-09-16T01:55:38.857 回答
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"
于 2021-06-28T20:24:47.417 回答