2 つのノードに分散されたアプリケーションがあります。最初のノードを Halt() すると、フェイルオーバーは完全に機能しますが (時々 ?) 最初のノードを再起動すると、start_link が既に開始されているため、テイクオーバーが失敗し、アプリケーションがクラッシュします。
SUPERVISOR REPORT <0.60.0> 2009-05-20 12:12:01
===============================================================================
Reporting supervisor {local,twitter_server_supervisor}
Child process
errorContext start_error
reason {already_started,<2415.62.0>}
pid undefined
name tag1
start_function {twitter_server,start_link,[]}
restart_type permanent
shutdown 10000
child_type worker
ok
マイアプリ
start(_Type, Args)->
twitter_server_supervisor:start_link( Args ).
stop( _State )->
ok.
私の上司:
start_link( Args ) ->
supervisor:start_link( {local,?MODULE}, ?MODULE, Args ).
両方のノードが同じ sys.config ファイルを使用しています。
上記が機能しないというこのプロセスについて、私が理解していないことは何ですか?