首先,我想说,我确实知道那个帖子:PHP - kill exec on client disconnect,但那里标记为答案的解决方案并不起作用!
问题:
我有一个脚本,它执行其他执行数字操作的脚本...但是想强制它在断开连接时停止,因为这些操作可能需要几分钟,并且正在使用大量的服务器资源。多次击中F5只会使这些时间越来越长......
我尝试了什么......我尝试了我发现的每一个解决方案。特别是上面给出的那个,但它们似乎都没有用。脚本仍然在后台运行直到完成。
有什么想法吗?
Debian上的PHP5 + Apache。
答案 0 :(得分:0)
您是否尝试使用flush()在数值运算逻辑中生成一些输出?例如,假设你有一个递归算法进行一些计算,输出写入每100次递归调用,如下所示,看看它是否中止:
recursive(input) {
if(input % 100 == 0) // check every 100 recursive call
{
echo " ";
flush(); // attempt to write to output stream
if (connection_aborted()) // will be true if output writing fails.
exit;
}
// do something
// your code logic...
input = input + 1;
// and call recursive
recursive(input);
}