暂停PHP脚本以防止TimeOut

时间:2013-01-04 11:50:35

标签: php time limit

我有一个PHP脚本,可以在我的服务器上创建大量文件,但不幸的是它运行时间过长。我的托管服务提供商的时间限制为90秒,脚本可能需要一个小时才能完成!主机提供程序阻止Set_Time_Limit,并且在睡眠功能中构建并不会真正暂停脚本。是否有另一种方法可以暂停,以便在90秒后不会退出?

谢谢! 桑德

4 个答案:

答案 0 :(得分:4)

我可以看到你为什么对你的主人感到沮丧,但他们为了顾客的利益做了这样的事情。如果一个进程可以获得所有处理能力,那么它将减慢服务器上的所有其他站点的速度。

如果确实需要对每条记录进行那种处理,那么共享主机不是正确的解决方案;你需要一个专用的服务器。

然而,我的猜测是,真正问题的真正解决方案不是要增加处理能力,而是要修复程序的性能。你没有解释你正在做什么,这使得单个记录需要45秒才能处理,但是如果它花了这么长时间,最好是令人印象深刻的东西。更可能的是,这意味着还有很大的改进空间。

我建议做一些分析,以确定你的代码是什么让它运行得如此之慢。通过一些工作,我愿意打赌你可以将速度数据降低至少一个数量级,可能更多。

答案 1 :(得分:1)

“处理2条记录占用大约90秒”

让它一次处理一条记录,递增计数器,刷新页面,然后按下要处理的下一条记录: - )

答案 2 :(得分:1)

不幸的是没有。您必须使用execsystem

将其拆分为较小的部分或运行后台作业

还有另一种方法here

答案 3 :(得分:0)

如果不了解您的代码有点困难,但我认为您必须编写代码以便多次调用该脚本。 有可能运行一个cron工作吗?该脚本可以在x min内运行,并将nest y文件放入队列中。

为什么要首先制作所有这些文件?听起来不太好主意..