2014-12-18 4 views
0

Я запускаю сценарий узла с вечно, и мне любопытно, насколько он надежный, и если я должен создать какой-то другой вид проверки, если скрипт все еще работает. Я использую эту команду:Запуск сценария node.js с forever

forever start server.js 

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

ответ

1

Я бегу навсегда в производственной среде и люблю его лично. Я использую сервер узлов для обработки изображений с помощью ImageMagick. Иногда я получаю ошибку ENOMEM (из памяти) и сбои Node. (Я предполагаю, что это утечка памяти в моем сценарии, который я еще не выследил). Когда это происходит, Forever пинает в нужный момент и через несколько секунд сервер возвращается. У меня есть браузер, возвращающий сообщение пользователю, попросив его попробовать еще раз - они делают, и он обрабатывается просто отлично. Я также видел, как происходят другие случайные ошибки, главным образом во время разработки, и Forever тоже их поймал и без проблем перезагрузил сервер Node. Я не могу вспомнить время, когда Node разбился, и сервер никогда не перезагружался, поэтому он делает то, что должен.

Также замечательно, что в ваших сценариях узла, если вы выполните console.log(), он выводит на вечный журнал. Я часто делаю хвост, чтобы следить за тем, что происходит на сервере, или даже время от времени смотреть назад на журналы, чтобы узнать, как это происходит. Он скажет вам, если/когда Forever переформатировал сервер.

Удачи вам!

+0

Спасибо, отлично звучит – baao

2

Да, это надежный, но если ваш скрипт содержит некоторые ошибки, которые могут остановить скрипт, это означает, что он будет запускаться каждый раз, когда узел будет остановлен. Это может заполнить журнал до такой степени, и вы скоро будете в памяти. Лучше тщательно протестировать, прежде чем перейти к производству, чтобы сохранить другое приложение на одном сервере.

Но вам не нужно беспокоиться, чтобы каждый раз держать узел.

Также выполните проверку nodemon, она автоматически перезапустит узел при изменении узла.

0

Я использовал для использования навсегда, но я переключился на PM2. Это намного лучше и обеспечивает живой мониторинг и доступ к журналу. Проверьте это: PM2.

Смежные вопросы