2012-11-21 126 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_ *