Koa - 为传入请求设置超时
Koa - set timeout on incoming requests
我正在尝试使用自定义中间件为传入请求设置超时,但没有抛出任何错误,似乎一旦 setTimeout
过期就不会调用中间件。
这是我正在尝试的代码:
app.use(async (ctx, next) => {
setTimeout(() => {
if (!ctx.headersSent) {
ctx.throw(408, `processing time toke longer than ${config.PROCESSING_TIMEOUT}, request was timedout`);
}
}, config.PROCESSING_TIMEOUT);
await next();
});
Koa(或节点的 http 服务器)有一种 built-in 控制请求超时的方法。
可以通过以 ms
为单位设置服务器超时来设置全局超时
server.timeout = config.PROCESSING_TIMEOUT;
在Koa的具体请求中可以指定超时时间如下
ctx.request.socket.setTimeout(config.PROCESSING_TIMEOUT);
我正在尝试使用自定义中间件为传入请求设置超时,但没有抛出任何错误,似乎一旦 setTimeout
过期就不会调用中间件。
这是我正在尝试的代码:
app.use(async (ctx, next) => {
setTimeout(() => {
if (!ctx.headersSent) {
ctx.throw(408, `processing time toke longer than ${config.PROCESSING_TIMEOUT}, request was timedout`);
}
}, config.PROCESSING_TIMEOUT);
await next();
});
Koa(或节点的 http 服务器)有一种 built-in 控制请求超时的方法。
可以通过以 ms
server.timeout = config.PROCESSING_TIMEOUT;
在Koa的具体请求中可以指定超时时间如下
ctx.request.socket.setTimeout(config.PROCESSING_TIMEOUT);