Задать вопрос
ndsdmfwg
@ndsdmfwg

Стоит задача мониторить один ресурс, с помощью чего организовать?

Нужно проверять данные одного ресурса, и незамедлительно оповещать об обновлениях. Использую модуль request, но что использовать скажем чтоб каждые 5 минут делать проверку, демон на node или что то еще? Такое ощущение что если напишу что нибудь на node то через час память забьется и процесс просто умрет, как быть? Есть какой нибудь правильный путь?
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
ndsdmfwg
@ndsdmfwg Автор вопроса
С момента последнего ответа прошло уже три года. Node.js существенно "повзрослел" за это время, так что вопрос не потерял своей актуальности.

Думаю стоит упомянуть еще несколько вариантов, которые отсутствуют в других ответах.

Forever

В экосистеме Node.js существует пакет forever. Его можно использовать как порождающего демона для вашего приложения. Из плюсов этого решения можно отметить простоту и возможность не писать дополнительный код. Кроме того, можно настроить forever так, чтобы он автоматически перезапускал приложение при его падении. Из минусов -- необходимость тащить в систему node.js скрипт-демон, который нужно устанавливать глобально. В ряде случаев это может оказаться неприемлемым. Запуск приложения, с использованием этого решения выглядит так:

forever start app.js
а его остановка:

forever stop app.js
PM2

Другим популярным решением из экосистемы Node.js является менеджер процессов PM2. Как и в случае с forever, pm2 это глобальный установленный node.js процесс-демон (со всеми плюсами и минусами). После его установки запуск приложения осуществляется командой:

pm2 start app.js
а его остановка:

pm2 stop app.js
init.d

Можно написать обычный init.d скрипт для вашего приложения. Этот путь используют все нормальные службы Linux. Если говорить о плюсах этого решения, то ваше приложение будет запускаться и останавливаться самой системой, нет необходимости устанавливать лишний процесс демон. Из минусов -- вам перезапускать приложение при падении в ручную (или с помощью специальных утилит). Так же вам придется написать сам init.d скрипт. За основу можно взять, например, вот это решение. Запуск приложения, с использованием этого решения выглядит так

service app-service-name start
а его остановка

service app-service-name stop

----------------
статья на хабре про это
https://habrahabr.ru/sandbox/96765/( Демонизация NodeJS приложений с помощью PM2, 2015 год)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы