2017-01-16 20 views
0

私はexpressjsに基づいてビデオをストリーミングしています。ビデオやユーザーがそこからビデオファイルをダウンロードできます。
私はアプリを起動すると、すべてうまくいきます。しかし、アプリがビデオをストリーミングすることができず、ファイルをダウンロードすることができないうちに、長い時間が経過しても空のファイルが返されてしまった後には、アプリを再起動するしかない。ディスクから読み込んだときにNodejsがクラッシュする

nginxのエラーログ:

2017/01/16 19:39:39 [error] 10584#10584: *23717 upstream prematurely closed connection while reading upstream, client: x.x.x.x, server: example.com, request: "GET /api/course/.../video/.../stream HTTP/1.1", upstream: "http://127.0.0.1:8080/api/course/.../video/.../stream", host: "example.com" 

私はクラスタモードでPM2を使用しています。

私は、ロギングエラーのアプリでこれを持っている:

process.on('uncaughtException', function(err) { 
    console.log(err); 
    winston.error('Caught exception : ' ,err); 
}); 

しかし、ログファイルにはエラーはありません。

ストリーミングビデオの場合は、thisと同様の方法を使用します。
ファイルをダウンロードする私はエクスプレスダウンロード機能を使用しています。

+0

ファイルハンドルやその他のシステムリソースを漏らしてしまい、最終的には尽きることはありますか? – jfriend00

答えて

0

最初にwinston daily rotationファイルをチェックします。処理されていない例外を記録するためのトランスポートがあります。第二に、アプリが遅くなった後で、ガベージコレクションがプロセスを遅くしたり、スレッドが長時間実行されている同期コードによってブロックされたりするため、メモリリークが発生する可能性があります。

関連する問題