在断开连接时停止PHP exec

时间:2016-05-29 18:40:25

标签: php

首先,我想说,我确实知道那个帖子:PHP - kill exec on client disconnect,但那里标记为答案的解决方案并不起作用!

问题:

我有一个脚本,它执行其他执行数字操作的脚本...但是想强制它在断开连接时停止,因为这些操作可能需要几分钟,并且正在使用大量的服务器资源。多次击中F5只会使这些时间越来越长......

我尝试了什么......我尝试了我发现的每一个解决方案。特别是上面给出的那个,但它们似乎都没有用。脚本仍然在后台运行直到完成。

有什么想法吗?

Debian上的PHP5 + Apache。

1 个答案:

答案 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);
}