Я на самом деле просто решил эту проблему для своих приложений и написал пост с более подробной информацией.По сути, вам сейчас нужен камень heroku-api, поскольку камень heroku заменен на CLI.Затем вам понадобится рейк-задача, пара переменных конфигурации и плагин планировщика heroku (бесплатно, за исключением минимального времени динамо).
Рейк-задача выглядит следующим образом:
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]
Наконец, нам нужно настроить задачу, чтобы запустить ее по расписанию.Я выбрал бесплатное дополнение Heroku cron:
heroku addons:add scheduler:standard -a [app_name]
heroku addons:open scheduler -a [app_name]
Это откроет пользовательский интерфейс планировщика в вашем браузере, и вы сможете создать запланированного работника для запуска задачи rake всякий раз, когда вы захотителайк.Нам нужно только один раз в день, и мы решили запустить его до нашей первой запланированной работы дня.
Мой оригинальный пост с закаленным CSS (см. Обновление 2 ниже):
https://web.archive.org/web/20150612091315/http://engineering.korrelate.com/2013/08/21/restart-heroku-dynos-on-your-terms/
ОБНОВЛЕНИЕ
Я изменил название задачи с «взорвать» на «перезапуск», чтобы было более понятно, что происходит.Implode - забавное имя, но в целом бесполезное.
UPDATE2
Очевидно, моя компания удалила сообщение в блоге.Я добавляю больше кода и обновляю ссылку, но CSS выглядит так, как будто ее вырвало.Мои извинения.