История изменений
Исправление energyclab, (текущая версия) :
У нас на бою сервак 24/7 крутится, нельзя просто взять и остановить... Написали свой интерпретатор команд и терминал. Терминал отправляет команду (сериализованную) на сервак, а сервак передает интерпретатору, тот ее eval-ом выполняет... Т.о. мы постоянно через reload перезагружаем пофикшенные модули... плюс, спокойно смотрим внутренности постоянно живущих объектов, и можем менять им значения... Но тут еще архитектура важна... у нас система реального времени, если ошибка возникла, то этой в сессии (набор объектов, выполняющих бизнес-логику и живущих на своем пуле потоков) ничего зарелоадить не получится, но можно ручками поменять значения и продолжить выполнение функции, а вот уже следующая такая сессия будет с измененным кодом...
Исходная версия energyclab, :
У нас на бою сервак 27/7 крутится, нельзя просто взять и остановить... Написали свой интерпретатор команд и терминал. Терминал отправляет команду (сериализованную) на сервак, а сервак передает интерпретатору, тот ее eval-ом выполняет... Т.о. мы постоянно через reload перезагружаем пофикшенные модули... плюс, спокойно смотрим внутренности постоянно живущих объектов, и можем менять им значения... Но тут еще архитектура важна... у нас система реального времени, если ошибка возникла, то этой в сессии (набор объектов, выполняющих бизнес-логику и живущих на своем пуле потоков) ничего зарелоадить не получится, но можно ручками поменять значения и продолжить выполнение функции, а вот уже следующая такая сессия будет с измененным кодом...