0

カウボーイ ハンドラーに関連する Erlang vm のシャットダウン時に多くのエラーが発生します。cowboy:start_http() を実行する start_listeners() 関数を実行する simple_one_for_one スーパーバイザーがあります。

すべてが開始され、エラーは発生せず、リクエストは正常に処理されます。

erlang VM をシャットダウンすると、次のようになります。

[エラー] スーパーバイザーbitter_rpc_supには、コンテキストshutdown_errorで理由が殺された未定義の終了時にbitter_rpc_sup:start_listeners()で開始された子bitter_rpc_http_idがありました

そして、カウボーイプロセスが強制終了され、異常終了することに関連するその他のエラーの束。カウボーイは、シャットダウンの OTP 規則に従っていませんか? スーパーバイザーでシャットダウンをインターセプトし、すべてのカウボーイ プロセス/ランチ プールを手動でシャットダウンする方法はありますか?

このエラーを押しつぶすには、どこを調べればよいですか?

4

2 に答える 2

1

牧場の子を作成し、スーパーバイザーに追加できます。

init([]) ->
    %% define Ref, NbAcceptors, IP, Port, Dispatch
    ...
    WebChild = ranch:child_spec(Ref,
                                NbAcceptors,
                                ranch_tcp,
                                [{ip, IP}, {port, Port}],
                                cowboy_protocol,
                                [{env, [{dispatch, Dispatch}]}]),
    {ok, {{one_for_one, 10, 10}, [WebChild]}}.
于 2015-01-09T19:28:55.243 に答える