Как сохранить жизнь только рабочему на бесплатном уровне Heroku из приложения?

Я тестирую приложение с рабочим и веб-дино на бесплатном уровне Heroku, и я хотел бы, чтобы рабочий оставался в живых, чтобы иметь возможность выполнять фоновые задачи, позволяя веб-дино бездействовать. По умолчанию они оба простаивают через 30 минут, даже если у меня есть вещи в очереди на работника.

Я понимаю, что есть способы поддерживать работоспособность веб-дино (а вместе с ним и работника), и есть способы поддерживать работу сети при уменьшении масштаба рабочего. Однако мне нужен рабочий, а сеть простаивает.

Я попытался запустить повторяющееся задание на работнике, которое

  1. Перезапустите дино.
  2. Масштабируйте динамометр вниз, а затем обратно вверх.

Оба подхода сработали (так как они перезапустили и правильно масштабировали динамометрический стенд), но рабочий динамометрический стенд все еще простаивал через 30 минут (как будто он зависел от веб-динамического стенда). Изменить: да, это в значительной степени так, как описано здесь: https://devcenter.heroku.com/articles/free-dyno-hours#dyno-sleeping

Я мог бы сделать это снаружи, но, похоже, мне придется постоянно проверять состояние, поскольку новый перезапуск, похоже, не дает мне 30-минутного прогресса. Мне также пришлось бы раскрывать ключ API, которого я хотел бы избежать.


person thisismydesign    schedule 23.05.2018    source источник


Ответы (3)


Если я вас правильно понял, вы пытаетесь остановить веб-дино и оставить рабочего динамометра в живых.

Вы можете сделать это, перейдя на вкладку Ресурсы: введите здесь описание изображения

А затем в разделе «Интернет»: введите здесь описание изображения

Нажмите на карандаш, выключите его и нажмите «Подтвердить».

person Nikita Ivanov    schedule 23.05.2018
comment
Спасибо за ответ, но не совсем. Я хотел бы сохранить веб-дино и оставить его бездействующим через 30 минут, как обычно (разница в том, что когда я посещаю страницу, она запускается автоматически), в то время как рабочий работает 100% времени. - person thisismydesign; 23.05.2018

В качестве обходного пути я в настоящее время удаляю веб-дино и явно включаю его, когда мне это нужно. Как описано здесь:

Только рабочие бесплатные динамометры не спят, так как не отвечают на веб-запросы.

person thisismydesign    schedule 24.05.2018

Мой обходной путь состоял в том, чтобы просто создать два приложения, которые автоматически развертываются из одного репозитория. Затем все, что вам нужно сделать, это включить рабочий динамометр для одного и веб-дино для другого.

person poutingemoji    schedule 20.06.2021