使用受监督进程中的数据来启动另一个进程

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

文档详细介绍了以下内容:

当supervisor启动时,它会遍历所有子规范并 然后按照定义的顺序启动每个子项。这是由 调用子级中 :start 键下定义的函数 规范,通常默认为 start_link/1。

考虑一个有两个进程需要启动、来自两个规格的 Supervisor。

当第一个进程启动时,会生成一些值:

  @impl GenServer
  def init(_arg) do
    ...
    # Note that the value does not have to be in the state.
    {:ok, some_value}
  end 

我们如何将此值作为参数传递给第二个规范?

{SomeWorker, value_from_first_worker}
process elixir erlang-otp data-sharing
1个回答
0
投票

第一个工作人员应该公开某种 API 供第二个工作人员调用。

此外,由于第二个工作人员依赖于第一个工作人员,您可能需要设置主管的

strategy: :rest_for_one

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