Количество дней в сети по времени дня
Есть ли способ использовать планировщик Heroku для запуска и остановки веб-динамиков для определенных периодов дня? Как говорят в рабочее время 2 динозавров и ночью только 1 дино?
Я действительно хотел бы избежать ввода обычных учетных данных пользователя/пароля в приложение, поэтому я ищу безопасный способ сделать это (за исключением того, что каждый раз каждый раз для каждого приложения). Естественно, использование "heroku ps: scale web = 2" было бы неплохо, но насколько я знаю, это не поддерживается.
Спасибо за любую обратную связь заранее...
Ответы
Ответ 1
Вы можете масштабировать диктофоны heroku по расписанию, создав script, который использует API Heroku. Затем вы делаете запись в своем Procfile и вызываете ее через дополнение к расписанию Heroku Scheduler. Вот как:
Сначала вам нужно добавить модуль python 'heroku' в ваш requirements.txt
:
Heroku == 0.1.2
Затем создайте config var, который содержит ваш ключ API, поэтому ваш script может использовать API.
heroku config: добавьте HEROKU_API_KEY = your_api_key_string
Вы можете найти свой ключ API
Затем вы можете определить всю свою задачу на веб-странице планировщика Heroku или определить ее внутри своего Procfile и вызвать имя процесса Procfile с веб-страницы. Я предпочитаю последнее, так как это упрощает обновление или изменение процесса без необходимости входа на сайт heroku.
Итак, создайте записи в своем Procfile:
scale_up: python scale.py 2
scale_down: python scale.py 1
И затем планируйте их:
И вуаля! Теперь ваши динамики будут увеличиваться или уменьшаться в указанное время суток.
-
Обратите внимание, что как только вы создали запланированную задачу на веб-странице Scheduler, вы не можете редактировать время суток, когда оно запускается, но если вы создаете новую задачу, вы можете установить время, а затем удалить старую задачу.
Примечание 2: API-интерфейс heroku python, похоже, бросает KeyError, если вы пытаетесь масштабировать до 0 диносов или пытаетесь увеличить масштаб, если в настоящее время существует 0 веб-динов. Чтобы избежать обоих, просто не уменьшайте до 0 динов.
Ответ 2
Он не встроен в платформу, но его довольно легко реализовать с помощью планировщика и использовать токен API.