3

uwsgi プロセスが自分自身を強制終了する uwsgi の問題を追跡しようとしています。

非常に役立つログファイルには、次のように書かれています...

F*CK !!! i must kill myself (pid: 9984 app_id: 0)...

少しグーグルでソースコードのこの行にたどり着きました...

void harakiri() {
    uwsgi_log("\nF*CK !!! i must kill myself (pid: %d app_id: %d)...\n", uwsgi.mypid, uwsgi.wsgi_req->app_id);
    //Some other stuff
    exit(0);
}

死ぬかどうかはさまざまですが、(グーグルから)リクエストにかかる時間に関係しているようです。この例では、要求は動的に生成された Pdf をストリーミングしています。生成はバックグラウンドで行われますが、完了すると、それを取得するための新しいリクエストが来ます。Pdf は非常に大きくなる可能性があり (最悪の場合、50 ~ 60 MB)、接続によっては、速度によって要求がタイムアウトのしきい値に達する理由が説明されます。

タイムアウトしないように、またはタイムアウトが非常に長くなるように uwsgi を構成するにはどうすればよいですか? このアプリはプライベート ネットワークで使用されていますが、停止するよりも遅くて成功したほうがよいと思います。

4

1 に答える 1

6

harakiri は、 --harakiri で自発的に有効にするものです。デフォルトでは、そのような機能はありません。構成を確認してください。

もう 1 つの可能性として、マスター プロセスなしで実行している可能性があります (これについては警告が必要です)。SIGALRM のシグナル ハンドラーを定義せずに alarm() を設定します。

于 2013-09-04T12:25:00.373 に答える