PHP连接超时

PHP连接超时,php,mysql,performance,curl,timeout,Php,Mysql,Performance,Curl,Timeout,我正在测试一个复杂的项目,涉及几个通过CURL相互链接的php文件。我运行主函数15次。它只运行4次,然后抱怨超过了30秒的最大执行时间。当我查看数据库时,我看到每次运行它,操作都会执行4次。可能是什么?该错误出现在我调用其他php文件的行中,$data=curl\u exec($ch)请参见php.inimax\u execution\u time设置和调整120,240仍然有意义并且可以,但不要试图将其设置为0以禁用此限制。而是将脚本修复为缓存远程文件,而不是一直获取它。总的来说,我希望你的

我正在测试一个复杂的项目,涉及几个通过CURL相互链接的php文件。我运行主函数15次。它只运行4次,然后抱怨
超过了30秒的最大执行时间
。当我查看数据库时,我看到每次运行它,操作都会执行4次。可能是什么?该错误出现在我调用其他php文件的行中,
$data=curl\u exec($ch)

请参见php.ini
max\u execution\u time
设置和调整<代码>120
240
仍然有意义并且可以,但不要试图将其设置为
0
以禁用此限制。而是将脚本修复为缓存远程文件,而不是一直获取它。总的来说,我希望你的设计被打破。通过cURL连接脚本表明您需要API,或者存在其他一些设计问题

其他人已经讨论了最长执行时间,因此总体思路如下:

  • 确保没有不必要的循环。如果你完成了一个循环,“打断”它。请记住,您也可以中断多次迭代
  • 我没有尝试过这一点(仅仅是思考),但是在执行结束时使用Ajax调用来开始下一次执行呢?我打赌这会启动执行计时器,因为您正在发出新请求
在php函数的起点设置此函数执行的时间限制。设置0表示无限制

function doWork() {
    set_time_limit(0);
    /* do your work here */
}
在curl中设置的时间限制:

curl_setopt($ch, CURLOPT_TIMEOUT, 400);

如果需要请求多个页面,可以使用curl\u multi同时(并行)请求_*