2012-12-05 126 views
0

我已經開發出應連續和順序執行腳本。現在爲這個腳本創建一個cron作業,它保持異步執行。執行PHP腳本依次連續

1)我一直在腳本執行一次這個腳本,所以我用@reboot一次執行腳本想法,但如果Apache craches那麼這個腳本將無法啓動由其自身執行while循環?

2)使用* * * * *的cron它執行這個腳本,但創建多線程和所有的cron服務器上的重疊,最終。

我已經跑出去的想法如何,即使Apache服務器重新啓動連續和順序執行的服務器腳本。

+1

你能可能創建一個「鎖定」的文件?意思是,當你的腳本啓動時,它會檢查這個文件是否存在。如果該文件存在,則該腳本不會繼續。否則,它會在啓動腳本時創建文件,並在完成後刪除文件。只是一個想法。 – Kyle

+0

如果你讓腳本通過數據庫與自己交談,那麼怎麼辦? I.E經常更新單元格,所以如果你的下一步進程試圖運行,它會意識到你的腳本已經在運行並停止。同樣,如果腳本運行並且在該單元的最後一次更新之間存在超過幾秒鐘,那麼它將知道繼續 –

+0

因此,我假設你建議我使用諸如偵聽數據庫的套接字或彗星技術之類的東西。 。我們用於推送通知......對嗎?那麼它會執行無限期的腳本,即使apache重新啓動? –

回答

0

cron是用於定時的基礎上(分鐘間隔:1分鐘)上重複作業。它旨在用於最終退出並需要從頭開始重新啓動的腳本。聽起來你的腳本本質上是試圖成爲一個守護進程 - 啓動一次,然後永久運行。

相反cron來反覆啓動腳本的新副本,只需啓動一次腳本通過初始化腳本,例如/etc/rc.local

+1

但是,如果apache craches?它會從它自己開始嗎?我不需要每次Apache重新啓動時手動執行.... –

0

有一些想法可以處理檢查腳本是否在this question中運行,並且您可以每隔幾分鐘運行一次cron以確保其運行並在不啓動的情況下啓動它。