LINUX.ORG.RU

Как заставить ноду обновлять свой код не перезапуская сервер?

 ,


0

4

Я сейчас делаю примерно так

Http=require("http")
Http.Server(function(req, res){eval(read(another_file))})
Это, тащемта, работает, но хотелось бы большего. Хотелось бы, чтобы вообще любую строку кода реализации самого сервера, любого модуля, и тд, можно было бы править на ходу, чтобы изменения применялись тут же, без перезапуска. Есть ли такой способ?



Последнее исправление: CYB3R (всего исправлений: 1)

перезапуск все равно будет.

смотри forever -w или https://nodejs.org/api/cluster.html (тут можно сделать чтобы мастер жил а воркеры рестартились при изменении)

dib2 ★★★★★
()

Возможно можно реализовать на другом уровне.

Например через переключение в ДНС или изменение роутинга на другой сервер с примененными изменениями.

Jaberwock ★★★
()

конечно есть

anonymous
()
Ответ на: комментарий от umren

Нет, всё правильно написано. Вся статья, целиком, настолько очевидна, что вообще непонятно зачем писателю тратить время на написание, а читателю - на читание.

Debasher ★★★★★
()
Ответ на: комментарий от Debasher

На eax.me подавляющее количество статей такое. Имхо годным там был только eaxcast, куда приглашали всяких интересных гостей типа Ключникова.

ymn ★★★★★
()
Ответ на: комментарий от umren

совет брать erlang - бред сивой кобылы

Это не так, в контексте данной темы совет посмотреть как это сделано там мог бы быть актуален, если бы автор - не анонiмус.

Модель лора такая - если не ясно что хочет человек - покажи что-то похоже, пусть поймёт что ему нужно

Debasher ★★★★★
()
Последнее исправление: Debasher (всего исправлений: 3)
Ответ на: комментарий от umren

Безотносительно темы разговора, нельзя не заметить, что статья, в целом, безграмотна.

Чтобы просто посмотреть на то, как выглядит правильная модель акторов, безо всяких там футур

Автор представления не имеет о модели акторов, если считает, что в ней нет futures.

anonymous
()
Ответ на: комментарий от anonymous

в эрланге нет *настоящих* акторов

Erlang Actors are broadly similar to Fog Cutter Actors:

1. Each Erlang Actor is a process that does not share memory with other processes.

2. An Erlang Actor can retriev e a message from its mailbox by selectively removing a me ssage matching a particular pattern

However, Erlang Actors have the following issues:

Erlang imposes the overhead that messages sent between two Erlang Actors are delivered in the order they are sent.

Instead of using exception handling, Erlang Actors rely on process failure propagating between processes and their spawned processes.

Instead of using garbage collection to recover storage and processing of unreachable Actors, each Erlang Actor must perform an internal termination or be killed. However, data structures within a process are garbage collected.

http://arxiv.org/ftp/arxiv/papers/1008/1008.1459.pdf

anonymous
()
Ответ на: комментарий от migesok

Ага, от самого создателя Модели Акторов.

anonymous
()

require.cache

test = __dirname+'/'+config.app+'/';
//удаляем
fw.iter(Object.keys(require.cache)).forEach(function(key){
	if (key.startsWith(test)) {
		delete(require.cache[key]);
	}
});
//перезагружаем 
app = require('./'+config.app+'/main');
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.