2010-10-15 33 views
1

我想运行一个PHP文件/函数,它不会停止,直到完成它的工作。有什么选择吗?PHP在Apache中的运行时间

(它不会打印任何信息到浏览器,它将使计算,将它们存储在数据库中

注:Apache服务器在我的电脑

回答

3

PHP通常有一个。执行时间限制,并且长时间运行的请求将保留在HTTP连接上

您将希望将作业添加到批处理队列,并让一些工作人员在HTTP请求之外提取作业(可能通过Cron作业)。

Here is a good tutorial by IBM详细说明了使用MySQL表和PHP代码完成的cron方法。其他选项是消息/排队系统而不是数据库。

0

如果你在Windows上运行(假设你),你可以使用WindowsShell对象的exec脚本。这将在后台运行脚本,无需在桌面上打开命令窗口。

$shell = new COM("WScript.Shell"); 
$cmd = $WshShell->Run("c:\php\cli\php.exe c:\yourscript.php", 0, false); 

在CLI的CLI版本下,脚本没有最大执行时间。

如果您只需要运行PHP脚本,而不需要通过网络浏览器来实现,那么只需使用CLI版本的PHP直接运行该脚本即可。

如果您在UNIX系统上,请使用exec()。同样的想法。

1

把这个声明在脚本的顶部:

set_time_limit(0); 

这将使无限期地运行该脚本。