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

dfuffjeb  于 2023-09-28  发布在  Erlang
关注(0)|答案(1)|浏览(156)

在Elixir伞形应用程序中,当一个应用程序(例如appA)中发生错误并且其管理程序确定错误无法恢复时,管理程序可能会终止整个伞形应用程序,不仅影响appA,还影响appB。我想知道主管如何在伞形应用程序中工作,他们的容错策略,以及如何有效地处理此类情况。
我用wxwidget检查了监督树,有两个独立的监督者。但为什么在我的情况下表现得像杀死两个应用程序。
任何链接或解释将不胜感激。

icnyk63a

icnyk63a1#

首先,让我们定义一个同时包含:release_server和:release应用程序的版本。我们还将添加一个版本。打开umbrella根目录下的mix.exs并在def项目中添加:

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

它定义了一个名为foo的发行版,其中包含kv_server和kv应用程序。它们的模式设置为:permanent,这意味着如果这些应用程序崩溃,整个节点将终止。这是合理的,因为这些应用程序对我们的系统至关重要。
https://elixir-lang.org/getting-started/mix-otp/config-and-releases.html#releases

相关问题