什么时候"而(1){sleep(1); }"在PHP中死?

时间:2014-03-25 02:08:22

标签: php execution

我今天只是想知道当用户退出网页(加载时)脚本是否终止。它turns out that yes,除非您另外设置。那么,考虑到这一点,这个脚本何时完成?

// Don't stop script even when the user closes the window
ignore_user_abort();

set_time_limit(0);

// Infinite loop (normally aborted when the user closes the window)
while(1) {
  sleep(1);
  }

我最好的选择是,当PHP和/或服务器关闭/打开时。但是,在生产系统中,这只能在紧急情况下进行。所以问题是,什么时候脚本通常会被结束?通常我的意思是不采取任何行动来结束该特定脚本。没有sleep()的相同脚本不会成为托管公司的潜在危险吗?使用稍微昂贵的操作设置其中一个,并且该脚本的服务器是100%。

1 个答案:

答案 0 :(得分:0)

以下是我的想法:

  1. Apache重新启动 - 如果达到CPU使用限制,某些托管公司会这样做。
  2. 某些托管公司会同时将您的流程限制为x个流程(例如:1和1)。因此,一旦有三个人访问您的网站,其他人都将收到错误500。
  3. 由于同样的原因,某些托管在disabled_functions列表中也有ignore_user_abort / set_time_limit。

    更新:将多个更改为多个。猜猜我使用的主机与人们通常使用的主机截然不同。