我正在测试一个复杂的项目,其中涉及几个通过 CURL 相互链接的 php 文件。我运行主函数 15 次。它只运行 4 次然后抱怨Maximum execution time of 30 seconds exceeded
。当我查看数据库时,我看到每次运行它时,操作都执行了4 次。会是什么呢?错误出现在我正在调用其他一些 php 文件的行上$data = curl_exec($ch);
问问题
3333 次
4 回答
0
在您的 php 函数的起点设置此函数执行的时间限制。设置 0 表示无限制。
function doWork() {
set_time_limit(0);
/* do your work here */
}
curl中设置的时间限制:
curl_setopt($ch, CURLOPT_TIMEOUT, 400);
于 2012-11-22T14:57:49.510 回答
0
如果您需要请求多个页面,您可以同时(并行)使用 curl_multi_*
于 2012-11-24T09:47:37.343 回答
0
请参阅 php.inimax_execution_time
设置和调整。120
,240
仍然有意义并且没问题,但不要试图将其设置0
为禁用此限制。而是将您的脚本修复为缓存远程文件,而不是一直获取它。一般来说,我希望你的设计会被打破。通过 cURL 连接脚本表明您需要 API 或存在其他一些设计问题
于 2012-11-21T21:46:00.467 回答
0
其他人已经涵盖了最大执行时间,所以一般的想法:
- 确保你没有不必要的循环。如果你完成了一个循环,“打破”它。请记住,您也可以中断多次迭代。
- 我没有尝试过这个(纯粹只是想),但是在执行结束时使用 Ajax 调用来开始下一次执行呢?我敢打赌,因为您正在发出新请求,所以会重新启动执行计时器。
于 2012-11-21T21:50:27.017 回答