2012-11-21 142 views
1

我正在测试一个复杂项目,涉及由CURL相互链接的多个php文件。我运行了15次主函数。它只运行4次,然后投诉Maximum execution time of 30 seconds exceeded。当我查看数据库时,我发现每次运行它时都会执行正好的操作。会是什么呢?该错误出现在我打电话给其他一些PHP文件的线路上$data = curl_exec($ch);PHP连接超时

回答

0

请参阅php.ini max_execution_time的设置和调整。 120,240仍然有意义并且可以,但不要觉得将其设置为0以禁用此限制。相反,请修复脚本以缓存远程文件,而不是一直读取它。一般而言,我希望你的设计被打破。通过卷曲连接的脚本表明您可能需要API或者有一些其他的设计问题

0

别人已经覆盖了最大执行时间,所以总体思路:

  • 确保你没有不必要的循环的东西。如果你完成了一个循环,“打破”它。记住你也可以打破多次迭代。
  • 我还没有尝试过(纯粹只是在想),但是在执行结束时使用Ajax调用来开始下一次执行呢?我敢打赌,因为你正在提出新的请求,所以启动执行定时器。
0

在你的php函数的起点设置这个函数执行的时间限制。将0设为无限制。

function doWork() { 
    set_time_limit(0); 
    /* do your work here */ 
} 

时间限制在卷曲设置:

curl_setopt($ch, CURLOPT_TIMEOUT, 400); 
0

如果您需要申请多个页面,你可以同时做到这一点(平行)与curl_multi_ *