gpt4 book ai didi

erlang - 何时在 Erlang/OTP 应用程序中使用 gen_server

转载 作者:行者123 更新时间:2023-12-03 23:44:51 25 4
gpt4 key购买 nike

阅读了 Joe Armstrong 的书并观看了 Kevin Smith 的截屏视频后,我构建了一个简单的 OTP 应用程序,它由一个 gen_server 和一个主管组成,捆绑在一起作为一个 OTP 应用程序。

现在我正在查看 mochiweb 并使用 new_mochiweb.erl 脚本创建了一个示例项目 [helloworld]。浏览源代码我发现它与我的示例 OTP 应用程序 [OTP 应用程序在那里,主管在那里] 没有什么不同,但有一个关键区别.. 生成的 helloworld.erl 和 helloworld_web.erl 文件没有实现 gen_server 行为,它们只是标准的 Erlang 模块。

我的印象是,在构建 OTP 应用程序组件时,推荐使用 gen_server 方法。为什么 mochiweb 可能会使用 OTP 应用程序和主管行为但避开 gen_server ?

最佳答案

您将 OTP/gen_servers 用于处于重启策略下的进程 - 那就是他们的重启在你的控制 .

对于表示与 Web 浏览器的连接的进程,情况并非如此。如果该进程终止,则服务器无法重新启动它 - 因此在 OTP 下运行它是没有意义的。

Mochiweb(和 Yaws)都使用 gen_servers 绑定(bind)到监听端口,然后生成一个无监督进程来处理新连接。

关于erlang - 何时在 Erlang/OTP 应用程序中使用 gen_server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1359205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com