Javascript 在膝关节炎中禁用请求超时
我收到一个连接重置错误。我相当肯定这是来自一个长时间运行的REST请求,即超时Javascript 在膝关节炎中禁用请求超时,javascript,node.js,centos,koa,Javascript,Node.js,Centos,Koa,我收到一个连接重置错误。我相当肯定这是来自一个长时间运行的REST请求,即超时 { [Error: socket hang up] code: 'ECONNRESET' } 有没有办法在膝关节炎中禁用请求超时,这样我就可以测试这个假设?< /P> 膝关节炎5版本。X,膝关节炎0.10,CENTOS 6 < P>看来您的请求比默认KOA超时时间更长。Default Koa 我有类似的问题,一个请求需要2分钟以上的时间。 在这篇文章中,我受到了zeronone的启发,最后这句话对我有所帮助
{ [Error: socket hang up] code: 'ECONNRESET' }
有没有办法在膝关节炎中禁用请求超时,这样我就可以测试这个假设?< /P>
膝关节炎5版本。X,膝关节炎0.10,CENTOS 6
< P>看来您的请求比默认KOA超时时间更长。Default Koa 我有类似的问题,一个请求需要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分钟的请求,理想情况下在单独的进程中运行繁重的内容,通过其他请求只检查工作是否完成
因此,如果要为应用程序服务器设置超时,仅出于测试目的,这可能很好:
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);
})
禁用超时是什么意思?阻止发出请求,还是阻止它抛出错误?如果你还没有读过的话,这篇文章可能会有帮助。谢谢拉里,我想知道是否还有更多的膝关节炎,具体的答案。它包装了HTTP内容,并为您提供了有限的控制……您是否尝试过使用
DEBUG=*
运行应用程序并使用app.onerror?你正在试图找到这个坏的请求,对吧?膝关节炎不会强加任何超时,从基础的Nojjs套接字中抛出Socket <代码>挂起错误< /C>。可能req.socket.setTimeout()
会帮助您增加超时时间。