2016-08-22 94 views
-1

當服務器沒有返回數據時,我將代碼置於睡眠狀態。但是在空閒一段時間後,它給了我這個錯誤。usleep非常快速地達到最大限制,如何延長

<b>Fatal error</b>: Maximum execution time of 120 seconds exceeded in 

我知道,更改php.ini中的最大限制將有所幫助。但我不想這樣做,因爲我沒有擁有服務器......所以我無法更改每個客戶端服務器的限制。

我該如何設置最大限制爲無窮大,或者如果達到最大值時可能會重新連接?

while ($currentmodif <= $lastmodif) 
    { 

     usleep(10000); // sleep 10ms to unload the CPU 
     clearstatcache(); 
     $currentmodif = filemtime($filename); 
    } 
+0

你同時是無窮的循環,而不是退出循環的任何時間,檢查你的條件 – ashkufaraz

+0

@ashkufaraz,我雖然不循環條件退出.. – 112233

+0

的ini_set(「的max_execution_time」,300);寫在腳本的頂部 –

回答

0

您必須將其設置爲零。零表示腳本可以永久運行。添加下面的腳本的開始:

ini_set('max_execution_time', 0); 
  • set_time_limit(),所以你不能用它來檢測它是否成功不返回任何東西。此外,它會拋出一個警告:

    警告:set_time_limit()函數:不能設置時間限制在安全模式下

  • ini_set()回報FALSE失敗並不會觸發警告。

+0

這也會在安全模式下生效嗎? – 112233

+0

我試過set_time_limit(0);它似乎也在工作......哪個更好? – 112233

+0

set_time_limit():無法在安全模式下設置時間限制 – ashkufaraz