我收到一个连接重置错误。我相当确定这是来自一个长时间运行的REST请求,即超时。
{ [Error: socket hang up] code: 'ECONNRESET' }
有没有办法在Koa中禁用请求超时,这样我就可以测试这个假设了?
我运行的是node版本5.x、koa 0.10、centOs 6
发布于 2019-02-01 11:09:58
如果要为应用程序服务器设置超时:
let app = new Koa();
let server=app.listen(3000);
server.timeout=5*60*1000;
如果对于每个请求,如@m1uan所说:
router.get("/path",async (ctx)=>{
ctx.request.socket.setTimeout(5 * 60 * 1000);
})
发布于 2017-11-27 10:37:32
您的请求似乎比默认的Koa超时时间更长。默认Koa timeout is 2 minutes
我也遇到过类似的问题,一个请求需要超过2分钟的时间。我在这篇文章中受到了zeronone
推荐的启发,最后这句话对我有帮助
ctx.request.socket.setTimeout(5 * 60 * 1000);
因此路由器中整个代码可能如下所示
router.post('/long-request', async (ctx) => {
// set timeout to 5 minutes
ctx.request.socket.setTimeout(5 * 60 * 1000);
// do some stuf what take long time
// but less than 5 minutes
});
我真的不建议做超过1分钟的请求,理想情况下,在单独的进程中运行繁重的东西,通过其他请求只检查工作是否完成。
因此,这可能只是为了测试目的。
https://stackoverflow.com/questions/40138600
复制相似问题