Замена в горячем режиме кода в Erlang

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

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

Тот код заменяет в горячем режиме в Erlang относящемся к? Или то, что некоторая другая более собственная функция?

14
задан Roger Johansson 3 June 2010 в 19:01
поделиться

1 ответ

Да, горячая замена в серверах Erlang в целом относится к этой функции. Она хорошо объяснена в вопросе stackoverflow Achieving code swapping in Erlang's gen_server, а также в этом аккуратном Erlang Generic Server tutorial или вот этом маленьком.

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

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

18
ответ дан 1 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

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