Open
Description
背景
目前在Swoole\Http\Server
中每个请求的最大执行时间没有限制,无法终止一些耗时的请求,只有靠上层Nginx
配置proxy_read_timeout
来间接地取消请求,但这样对客户端不够友好。
提议
希望能增加配置项time_limit
来限制每个请求的最大可执行时间(类似于set_time_limit),超时后能有个回调,来动态地给出超时的响应。
$serv->set([
'time_limit' => 30, // 每个请求的最大执行时间 30s,设置为0表示不限制
'time_limit_callback' => function(Swoole\Http\Request $request, Swoole\Http\Response $response, $timeLimit) {
$response->end(sprintf('响应超时:%.1f秒', $timeLimit));
}
]);
Metadata
Assignees
Labels
No labels