gpt4 book ai didi

erlang - 何时使用 erlang 应用程序 :start or included_applications and a supervisor?

转载 作者:行者123 更新时间:2023-12-03 21:34:25 28 4
gpt4 key购买 nike

我有一个 Erlang 应用程序,它的 deps 目录依赖于另一个应用程序。

据我所知,我也可以;

a) 通过调用 application:start(some_other_app) 从我的包含应用程序启动我的依赖应用程序,该应用程序启动应用程序并显示它在 Observer 中独立运行。

b) 使用 {included_applications, [some_other_app]} 将我的依赖应用程序包含在我的 .app 文件中,以便加载应用程序但不启动,然后从我自己的顶级主管启动包含的应用程序。这将再次启动包含的应用程序,并显示其在 Observer 中我自己的监督层次结构下运行。

我的问题是我什么时候应该使用这两种方法?如果我使用选项“a”并且我的依赖应用程序退出,它会重新启动还是应该使用方法“b”以便相应地监视我拥有的任何依赖项?

附带说明一下,我使用 Rebar 来打包和管理我的依赖项。

谢谢,

安迪。

最佳答案

你可能不应该做 a) 或 b)

来自 Learn You Some Erlang

看章节:Included Applications

It is more and more recommended not to use included applications for a simple reason: they seriously limit code reuse. Think of it this way. We've spent a lot of time working on ppool's architecture to make it so anybody can use it, get their own pool and be free to do whatever they want with it. If we were to push it into an included application, then it can no longer be included in any other application on this VM, and if erlcount dies, then ppool will be taken down with it, ruining the work of any third party application that wanted to use ppool.

For these reasons, included applications are usually excluded from many Erlang programmers' toolbox. As we will see in the following chapter, releases can basically help us do the same (and much more) in a more generic manner.



中章 Release is the Word您可以阅读有关如何将多个应用程序捆绑到一个版本以及它们如何启动的信息。

关于erlang - 何时使用 erlang 应用程序 :start or included_applications and a supervisor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141198/

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