2010-06-22 77 views
0

所以我只想把這個快速和髒的模塊寫入一個程序,該程序需要當前時間,回顯一個字符串,然後等待x分鐘並回顯另一個字符串。唯一的問題是,這個小模塊會在程序結束之前停止其餘的程序。任何方式在這個?沒有腳本暫停/延遲的PHP定時器

+0

如果你的程序在x分鐘之前停止/崩潰/等會發生什麼?有一些方法可以通過啓動其他PHP線程和共享PID等來實現,但是您確定要使用該路線嗎? – 2010-06-22 03:00:25

+0

它沒有那麼多停頓或崩潰,就像暫停一樣。我試圖做到這一點的每種方法都有效,但是它暫停了程序的其餘部分,直到分配時間結束,所以它無法運行。 – Francis 2010-06-22 03:03:19

+0

正確,而且這樣做是有原因的。 PHP本身並不支持事件或多線程,我只是覺得可能有更好的解決方案來實現你想要做的事情。 – 2010-06-22 03:06:16

回答

0

您可以複製它正在運行的當前進程,讓一個進程等待,另一個進程做它必須做的事情。

到餐桌,你必須使用pcntl_fork

0

Ofcourse分叉會做的伎倆一個PHP的過程,但爲什麼不能在PHP中使用的ticks functionality

考慮這個例子:

declare(ticks=1); 

function tick() { 
    // check if the interval is correct before proceding 
    $mem = memory_get_usage(true); 
    echo "Using $mem bytes right now"; 
} 

register_tick_function('tick'); 

// do all kinds of things in your main program here 
while(true) { 
    usleep(50000); 
} 

睡覺時它會定期調用蜱功能,而無需手動調用它。唯一需要注意的是,如果特定操作需要很長時間才能完成(例如數據庫查詢),則在該操作完成之前,滴答不會觸發。