什么地方适合表演inets:start()?
applicationname_sup主管模块中?(我仍在努力inets:httpd)
注意:答案不能是“使用启动文件”。
inets是一个“独立” Erlang应用程序;inets:start()只是的别名application:start(inets)。我猜答案很大程度上取决于您如何维护代码。
如果您的代码打包为应用程序,则您的.app文件应按inets要求列出,然后在您之前启动(请参阅Applications标签)。application:start(my_app).现在开始使用您的应用程序将确保也启动了inets。结果:如果创建启动文件,它也会为您启动inets :-P
如果您热衷于不使用应用程序,那么我想选择取决于您的代码如何工作。如果您始终需要启动inet,则最好由任何主管启动。如果很少需要它,则可以始终确保它以类似以下内容的开头:
ensure_app_started(App) ->
case application:started(App) of
ok -> ok;
{error, already_started} -> ok;
Error -> Error
end.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |