Jus*_*tin 13 erlang erlang-otp mochiweb
阅读了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?
Gor*_*rie 10
您将OTP/gen_servers用于重启策略下的进程 - 即重启它们在您的控制之下.
表示与Web浏览器的连接的进程不是这种情况.如果该进程终止,则服务器无法重新启动它 - 因此在OTP下运行它是没有意义的.
Mochiweb(和Yaws)都使用gen_servers绑定到侦听端口,然后生成一个无监督的进程来处理新连接.