我正在尝试找到一些关于如何使用Erlang正确部署到生产系统的好文档(书籍,博客,邮件列表等)。
例如,我有一个应用程序,设计应该启动特定模块的三个进程,这些进程采用gen_server行为。当你开始生产Erlang系统时,正确的方法是什么?
my_server:start().
%%这样做了三次? (我希望这不是。)我正试图找到一些好的资源,以解释在Erlang世界中解决这个问题的正确方法。
答案 0 :(得分:5)
主管是要走的路。您应该阅读文档,但是像这样的主管初学者会启动三个相同的孩子并让他们继续运行:
init([]) ->
MyChildren =
[{list_to_atom(ChildName),
{theworkermodule, start_link, [ChildName]},
permanent, 1000, worker, [theworkermodule]} || ChildName <- [c1,c2,c3]],
{ok, {{one_for_one, 5, 10}, MyChildren}}
您可以让您的应用程序启动此主管,它将保持您的三个子gen_servers(在workermodule.erl中定义)运行 - 当/如果一个人死了它将自动重启。