有没有办法以HTTP::Daemon
某种方式检测客户端何时断开连接(例如由于超时)并随后杀死自己?
现在,这就是我编写服务器的方式:
my $response;
try {
local $SIG{ALRM} = sub { die __TIMEOUT__ };
alarm 180;
&process_query;
alarm 0;
$response = new HTTP::Response(200);
}
catch {
if ( $_ eq __TIMEOUT__ ) {
$response = new HTTP::Response(504);
}
else {
$response = new HTTP::Response(500);
}
};
$client->send_response($response);
这只是假设客户端将在 180 秒后放弃,这可能是真的,也可能不是。只要客户继续等待响应,我就想继续处理,但不会更长。