Могу ли я выполнить команду «heroku restart» из приложения, запущенного на Heroku?

#ruby #heroku #sinatra

#ruby #heroku #синатра

Вопрос:

Мое приложение (Sinatra) периодически переходит в плохое состояние, которое я смог исправить, только перезапустив Heroku dyno. Конечно, я хотел бы устранить основную проблему, но в то же время я бы хотел, чтобы пользователь не испытывал таких неудобств.

Ответ №1:

Насколько «плохим» является состояние? Если приложение все еще запущено, вы, вероятно, могли бы использовать system команду в Ruby для выполнения команды.

Но это кажется плохой идеей. Вместо этого вы могли бы захотеть сделать (пока не устраните фундаментальную проблему!) что-то внешнее по отношению к приложению, отслеживающему это. Возможно, вы можете настроить экземпляр Nagios, God или что-то в этом роде…

Ответ №2:

Работает следующее. Это НЕ работало в стеке Heroku «aspen», но это работает в стеке bamboo 1.9.2.

 require 'heroku'
~
~
heroku = Heroku::Client.new("YOUR EMAIL", "YOUR PASSWORD")
heroku.ps_restart("hacknews")