我正在开发一个基于expressjs的网站,可以播放视频,用户可以从中下载视频文件 当我启动应用程序时,一切运行良好。但是经过一段时间后,应用程序无法播放视频和下载文件也无法正常工作(它会在长时间延迟后返回空文件)修复它的唯一方法是重新启动应用程序。
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 :(得分:-1)
首先,检查winston每日旋转文件,他们有一个用于记录未处理异常的传输。其次,如果在某个时候你的应用程序变慢,你可能会因为垃圾收集减慢了进程或线程被长时间运行的同步代码阻塞而导致内存泄漏,如果你在这里展示你的代码将会很有帮助。 / p>