9

simple_one_for_oneワーカーを開始するスーパーバイザーがいます。start_child()初めて電話すると、すべてがうまくいきます。しかし、2回目にすると、{error,{already_started,<0.71.0>}}. simple_one_for_oneスーパーバイザーが私に を返すのはなぜalready_startedですか? 私は何が欠けていますか?

コードは次のとおりです

4

1 に答える 1

19

gen_server の (ローカル) 名を登録しています。1 つを開始すると、同じ名前で別の 1 つを開始することはできません。

代わりに gen_server:start_link/3 を使用し、現在の gen_server:start_link/4 呼び出しから最初の引数を削除すると、複数を起動できるはずです。

于 2011-07-23T06:59:05.600 に答える