【问题标题】:Code hot swapping in ErlangErlang 中的代码热交换
【发布时间】:2011-02-27 11:24:29
【问题描述】:

我最近在 InfoQ 上看到了一个关于 Erlang 的视频, 在该视频中,一位创作者介绍了如何替换消息循环的行为。

他只是发送一条消息,其中包含新版本消息循环代码的 lambda,然后调用它而不是再次调用旧循环。

Erlang 中的代码热交换指的是什么? 还是其他一些更原生的功能?

【问题讨论】:

    标签: erlang message-loop hotswap


    【解决方案1】:

    是的,erlang 服务器中的热插拔通常是指这个特性。 在 stackoverflow 问题 Achieving code swapping in Erlang’s gen_server 以及这个简洁的 Erlang Generic Server tutorialthis little one 中都有很好的解释。

    Erlang/OTP gen_server 模块通过在回调模块中实现Module:code_change/3 函数,提供了一种实现热插拔的通用方法。

    这样,您可以在不关闭服务器代码的情况下升级服务器代码,或者如果某些事情没有按预期工作,则回退到以前的实现。一般来说,热插拔应该使用通用的release handler

    【讨论】:

    • @bruce14 删除死链接的更好选择是尝试找到(永久)存档版本
    猜你喜欢
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2018-08-09
    • 2010-12-22
    • 2013-02-15
    • 1970-01-01
    相关资源
    最近更新 更多