2013-08-31 111 views
0

我正在寫一個PHP腳本(OK,這是一個後臺進程的工人),我想在後臺運行,並遵循以下僞代碼:運行在服務器上的PHP腳本開始

do { 
    // stuff 
    sleep(60*30); // 30 minutes 
} while(1); 

現在,我該如何設置這個寶貝在服務器重啓的時候自動運行。我不需要擔心狀態,因爲所有內容都存儲在MySQL數據庫中 - 並且它應該能夠從停止的地方繼續。

我在AWS上使用Ubuntu 12.04 x64服務器(如果有的話)。

謝謝!

+1

放棄睡眠()並使其每30分鐘運行一次cronjob可能是更好的選擇 –

+0

@guido如果它不能在30分鐘內完成,該怎麼辦?我將有兩個進程同時運行。 – FloatingRock

+1

@FloatingRock通常會在我的cron開始處放置一個空白的零字節文件,如果鎖定文件可用於暫停執行,則該操作將用作LOCK,否則我繼續操作,並在腳本結尾處刪除該鎖定文件。然後通過crone進行設置。使用cron是個好主意,因爲它比使用30分鐘睡眠執行的腳本佔用的內存少。 –

回答

-1

作爲解決您的具體問題,使用bash腳本來執行PHP CLI Pusedo代碼將

\usr\sbin\php -q \home\user\myphpscript.php

這將執行PHP腳本沒有時間約束,但是由於你使用PHP CLI你可能沒有得到一些環境變量,這是Web特定的,但對於這樣的後臺進程,你幾乎不需要它們。

相關問題