具有大量执行时间的PHP脚本

时间:2013-07-16 18:58:18

标签: php

我正在编写一个从Internet上下载图片的PHP脚本。由于数据量巨大,脚本的执行时间从10-15分钟不等。有没有更好的方法来处理这种情况,还是我应该简单地执行脚本并让它花费时间?

3 个答案:

答案 0 :(得分:1)

您的脚本似乎基本上受I / O限制。没有更多的带宽,你几乎无能为力。

您可以通过增加交互性来改善用户体验(如果有的话)。例如,您可以在会话中保存要打算下载的文件名,并在每个页面之后重新显示页面(并刷新它,或转到AJAX),显示预期的完成时间,当前速度和百分比完成。

基本上,脚本会在会话中保存URL数组,并在每次迭代时弹出一些并下载它们,也许检查它所花费的时间(如果你在半秒内下载一个文件,下载它是值得的另一个)。

由于脚本执行了几次,不仅是一次,你不必担心它的超时。但是,您必须处理用户中止整个过程的可能性。

答案 1 :(得分:1)

如果没有任何带宽限制,我会建议多个线程更快地完成。但最接近的是process control

或者前段时间我写了一个类似的scraper,为了更快地执行它,我使用了exec函数来实例化同一个文件的多个线程。因此,您还需要创建存储库和锁定机制。听起来很脏,但很有效!

答案 2 :(得分:0)

如果优化值得投入时间,并且如果在图像处理上消耗了大量执行时间,则调用可以旋转几个进程的shell脚本可能是一个选项