Skip to content

HttpServer支持请求超时控制 #59

Open
@hhxsv5

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions