我需要一個無限期運行的PHP腳本,但我似乎無法找到一個很好的方法來執行此操作。我的服務器在Windows Server 2008上運行。無限期運行PHP(CLI)腳本
您認爲我可以依靠計時器任務嗎?有更好的選擇嗎?
在此先感謝。
我需要一個無限期運行的PHP腳本,但我似乎無法找到一個很好的方法來執行此操作。我的服務器在Windows Server 2008上運行。無限期運行PHP(CLI)腳本
您認爲我可以依靠計時器任務嗎?有更好的選擇嗎?
在此先感謝。
如果您需要的腳本爲持續運行,而不是開始定期去做做什麼工作,那麼你需要它進入無限循環,即:
while (1) {
do_something();
sleep(1);
};
不要遺漏sleep()
聲明,除非你不介意腳本吃你的整個處理器。
謝謝亞倫。你認爲這是否與計劃任務相結合(只是爲了在重新啓動的情況下在啓動時運行它)可以成爲資源方面的一個很好的解決方案? – Olsi
@Olsi當然,你需要確保任務只在啓動時運行,否則讓你的PHP代碼檢查一個已經運行的實例,如果找到了,就退出。除此之外,'sleep(1)'會導致腳本產生調度器給它的任何CPU時間,而不是實際需要執行的任務。唯一剩下的問題是內存使用情況;請記住,無論PHP解釋器爲您的腳本分配什麼內存,都將保持分配狀態,直到腳本退出爲止,因此通常無關緊要的內存泄漏很容易成爲這裏的主要問題。 –
除了使用'set_time_limit(0);'並且剛啓動時運行腳本? – Crontab
..爲什麼?也許一個cron工作是一個更好的主意? – Jonatan
你是什麼意思,無限期地?按計劃重複運行?或者從不退出?從不退出是容易的...只是不要放棄。 –