2012-04-11 2 views
0

カウボーイにhttps://github.com/extend/cowboyこれは正しい子の仕様ですか?

supervisor:start_child(cowboy_sup, child_spec(Ref, NbAcceptors, 
    Transport, TransOpts, Protocol, ProtoOpts)). 

child_spec(Ref, NbAcceptors, Transport, TransOpts, Protocol, ProtoOpts) -> 
{{cowboy_listener_sup, Ref}, {cowboy_listener_sup, start_link, [ NbAcceptors, Transport, 
TransOpts, Protocol, ProtoOpts ]}, permanent, 5000, supervisor,[cowboy_listener_sup]}. 

http://www.erlang.org/doc/man/supervisor.html#start_child-2

を次のように私は私はあなたがそれについてどう思いますか、それは正しい子の仕様だと思いませんか?コードがある気づきますか

答えて

2

supervisor:check_childspecs/1機能を使用すると、子の仕様の正しさを確認できます。

そして、はい、それは有効な子の仕様のようになります。

child_spec() = 
    {Id :: child_id(), 
    StartFunc :: mfargs(), 
    Restart :: restart(), 
    Shutdown :: shutdown(), 
    Type :: worker(), 
    Modules :: modules()} 

Id -> {cowboy_listener_sup, Ref} 
StartFunc -> {cowboy_listener_sup, start_link, [ ... ]} 
Restart -> permanent 
Shutdown -> 5000 
Type -> supervisor 
Modules -> [cowboy_listener_sup] 

は正確に、疑いは何ですか?

+0

ありがとう、私は今それを持っていると思う。 – why

+0

もう1つ質問:これは有効な子の仕様だと思いますか? – why

+1

@それは有効な子の仕様ではありません、それは6つの要素のタプルでなければなりません( '' {OK、Pid} = supervisor:start_child(ReqsSup、[ListenerPid、CSocket、Transport、Protocol、Opts] @Robertoが示したように。あなたのスーパバイザが 'simple_one_for_one'でなければ、" child spec "が開始子コールの余分な引数のリストになります。しかし、これは 'simple_one_for_one'の場合のみです**。 – rvirding

関連する問題