Регулярно (к примеру, раз в 5 минут) отсылать запросы приложению изнутри самого приложения.
С помощью JavaScript это будет выглядеть так:
var http = require("http"); setInterval(function() { http.get("http://<your app name>.herokuapp.com"); }, 300000); // every 5 minutes (300000)
Использовать внешние сайты "пингалки", которые будут с заданной периодичностью проверять ваш сайт.
Примером таких сайтов является Pingdom, Uptime Robot, Kaffeine и другие. Принцип прост. Заходим, регистрируемся (если надо), указываем сайт и интервал времени и применяем настройки.
Использовать Heroku Newrelic addon Данный плагин предназначен для мониторинга и уведомления о падениях сайта, но как полезный "побочный эффект" он не даст заснуть приложению. На этом методе, как на самом, на мой взгляд, красивом, я и остановился. Опишу его подробнее.
Чтобы установить addon, нужно перейти по данной ссылке и нажать кнопку "Install New Relic APM". В открывшемся окне нужно выбрать тарифный план и название приложения, к которому будет применен данный addon.
После чего нажать кнопку "Provision add-on".
После установки New Relic станет доступен на странице настройки приложения в списке установленных аддонов.
Клацаем на ссылку и попадаем на страницу настроек дополнения.
Переходим на вкладку "Synthetics" и нажимаем кнопку "Add new".
В открывшемся окне в разделе "Enter the details" указываем произвольное название монитора и адрес сайта, который будем мониторить. Выбираем локацию, откуда будет сайт проверяться в "Select monitoring locations".
Периодичность проверки указываем в "Set the shedule" (я ставил 15 минут) и email для уведомлений в "Get notified".
После всех настроек не забываем нажать кнопку "Create monitor".
Маленькие хитрости с Heroku
Представим ситуацию. Вы прошли курс JavaRush, прошли онлайн-стажировку, и у вас красуется первый проект на PaaS платформе Heroku. Вы рассылаете резюме и начинаете ходить по собеседованиям. И вот на одном из них вас просят показать ваш проект (или же его захотят быстро глянуть еще до собеседования, перейдя по ссылке из резюме). Открывается браузер, и начинает дооолго грузиться ваш сайт. Да, можно обьяснить, что это бесплатный Heroku и он так работает, но впечатление испорчено. В причинах данного поведения и методах борьбы с ним мы и попытаемся разобраться в этой статье.
Начать стоит с понятия dyno hours. Согласно документации, Dyno hours — это, по сути, время работы вашего приложения/приложений, выраженное в часах/месяц. Сразу после регистрации бесплатного аккаунта вам дается 550 часов в месяц. Проведя несложные калькуляции, получаем около 17 часов в день для одного приложения. Маловато будет. Посему привязываем кредитную карту в Account settings — Billing и получаем еще 450 бесплатных часов (32 часа в сутки уже с головой). Эту проблему решили. Есть еще одна.
В вышеупомянутом документе указано также о "засыпании" (dyno sleeping) приложения при отсутствии активности на протяжении 30 минут. На просторах интернета встречается три основных подхода :
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ