子供の初期リストを使用してスーパーバイザーを作成する方法を知っています。
defmodule TweetProcesser.DummySupervisor do
use Supervisor
def start_link(opts) do
Supervisor.start_link(__MODULE__, :ok, opts)
end
@impl true
def init(:ok) do
children = [
Supervisor.child_spec({TweetProcesser.Worker, []}, id: :my_worker_1),
Supervisor.child_spec({TweetProcesser.Worker, []}, id: :my_worker_2),
Supervisor.child_spec({TweetProcesser.Worker, []}, id: :my_worker_3),
Supervisor.child_spec({TweetProcesser.Worker, []}, id: :my_worker_4),
Supervisor.child_spec({TweetProcesser.Worker, []}, id: :my_worker_5)
]
opts = [strategy: :one_for_one, name: TweetProcesser.WorkerSupervisor]
Supervisor.init(children, opts)
end
end
しかし、実行時に新しい子を追加したり、このリストから子を削除したりする機能を作成するにはどうすればよいでしょうか? 子を追加または削除するために、実行中に他のアクターがこれらの関数を呼び出すことができるようにします。