Erlang mochiweb和gen_服务器

Erlang mochiweb和gen_服务器,erlang,Erlang,[只有当你看过凯文·史密斯的《实践中的二郎》屏幕广播时,这才有意义] 我是一个ErlangNoob,试图用嵌入式Web服务器[mochiweb]构建一个简单的Erlang/OTP系统 我浏览了EIP的屏幕广播,还玩弄了使用新的_mochiweb.erl脚本创建的简单mochiweb示例 我试图弄清楚Web服务器应该如何与gen_服务器模块相关联。在EIP示例[Ch7]中,作者创建了一个web_server.erl gen_server进程,并将mochiweb_http进程链接到该进程。然而,在

[只有当你看过凯文·史密斯的《实践中的二郎》屏幕广播时,这才有意义]

我是一个ErlangNoob,试图用嵌入式Web服务器[mochiweb]构建一个简单的Erlang/OTP系统

我浏览了EIP的屏幕广播,还玩弄了使用新的_mochiweb.erl脚本创建的简单mochiweb示例

我试图弄清楚Web服务器应该如何与gen_服务器模块相关联。在EIP示例[Ch7]中,作者创建了一个web_server.erl gen_server进程,并将mochiweb_http进程链接到该进程。然而,在mochiweb项目中,mochiweb_http过程似乎是“独立的”;它似乎没有嵌入到单独的gen_服务器进程中

我的问题是,这些模式中的一种是否应该优先于另一种?若然,原因为何?还是没关系


提前感谢。

在监督树中嵌入流程的原因是,如果流程失败,您可以重新启动它


处理HTTP请求的进程在浏览器中响应外部生成的事件。无法重新启动它-这是运行浏览器的人的特权-因此不需要在OTP下运行它-您可以在没有监督的情况下生成它。

您将进程链接到应用程序的主管层次结构,原因有两个:1)如果工作进程崩溃,可以重新启动工作进程,以及2)能够在停止应用程序时终止所有进程

正如前面的回答所说,1)对于http请求处理过程来说并非如此。但是,2)是有效的:如果您不理会您的进程,那么您无法保证在停止应用程序后,您的所有进程都将从VM中清除(想想那些陷入无休止循环、等待接收的进程等等)