Горячая замена кода в Эрланге

Недавно я видел видео об Эрланге на InfoQ. В этом видео один из создателей представил, как заменить поведение цикла сообщений.

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

Это код горячей замены в Erlang ссылается на? Или это какая-то более родная особенность?

1 ответ

Решение

Да, горячая замена на серверах erlang обычно относится к этой функции. Это хорошо объяснено в вопросе stackru Достижение перестановки кода в gen_server Erlang, а также в этом изящном руководстве по Erlang Generic Server или в этом маленьком.

Эрланг / ОТП gen_server Модуль предоставляет общий способ добиться горячей замены, реализуя Module:code_change/3 функция в модуле обратного вызова.

Таким образом, вы можете обновить код сервера, не выключая его, или вернуться к прежней реализации, если что-то не работает должным образом. Как правило, горячая замена должна быть реализована с использованием стандартного обработчика выпуска.

Другие вопросы по тегам