【发布时间】:2013-06-30 19:52:22
【问题描述】:
我想运行一个单独的php进程,在我的服务器中,进程分开运行,但是当这个测试运行时,站点的所有其余部分都不工作,即整个站点都在等待他完成.
当我使用时:
忽略用户中止(真); 设置时间限制(0); 而(真) { 睡眠(10); }上面的代码完美运行,但是当我包含注册表、控制器和数据库驱动程序时,站点的其余部分仍在等待
例如:
忽略用户中止(真); 设置时间限制(0); //注册表、控制器、数据库等 而(真) { //代码[...] 睡眠(10); }【问题讨论】:
-
那是因为脚本永远不会返回。脚本在做什么?
-
我认为重要的是您要尝试找出
//code[...]中的哪些内容使其他页面“挂起”。一个试错的游戏。如果您知道是什么命令使 php '挂',那么这里的用户可能会告诉您如何解决它。 -
任何会话正在使用中?如果是这样,请注意会话使用锁定。您可以通过尽快调用
session_write_close()来避免它,然后只从会话变量中读取。 -
你不应该在网络服务器中运行这样的事情,然而,如果你必须,在长期运行的事情中调用
session_write_close(),因此它不会阻止使用相同会话 id 的其他请求。 -
@tlens 是的,但我认为它不应该挂 other 页面。他还声称第一段代码“完美运行”,这意味着第二部分无限运行代码中的某些内容正在阻止其他 php 进程运行(或挂起其他 php 进程中的类似代码部分)。
标签: php