Elixir Umbrella 应用程序中的主管行为如何:跨应用程序管理故障

问题描述 投票:0回答:1

在 Elixir 伞式应用程序中,当一个应用程序(例如 appA)发生错误并且其主管确定该错误无法恢复时,主管可能会终止整个伞式应用程序,这不仅会影响 appA,还会影响 appB。我想知道主管如何在伞式应用程序中工作、他们的容错策略以及如何有效处理此类情况。

我用 wxwidget 检查监督树,有两个单独的监督者。但为什么在我的例子中要杀死这两个应用程序呢?

任何链接或解释将不胜感激。

erlang elixir erlang-otp
1个回答
0
投票

作为起点,我们定义一个包含 :kv_server 和 :kv 应用程序的版本。我们还将为其添加一个版本。打开伞根目录中的 mix.exs 并添加到 def 项目中:

releases: [
  foo: [
    version: "0.0.1",
    applications: [kv_server: :permanent, kv: :permanent]
  ]
]

定义了一个名为 foo 的版本,其中包含 kv_server 和 kv 应用程序。它们的模式设置为:永久,这意味着,如果这些应用程序崩溃,整个节点将终止。这是合理的,因为这些应用程序对我们的系统至关重要。

https://elixir-lang.org/getting-started/mix-otp/config-and-releases.html#releases

© www.soinside.com 2019 - 2024. All rights reserved.