2014-04-16 61 views
0

我一直在研究如何解決這個問題。我試圖阻止的是一個cronjob的重疊執行。我想在每個分鐘的基礎上運行我的腳本,因爲應用程序是支持需要不斷觀察。問題是如果完成需要相當長的時間,並且下一個cron執行會跟上。腳本實例檢查器

我已經搜索了一些關於PID的文章,但沒有得到如何去做。我無法使用鎖定文件,因爲它可能不可靠,已經嘗試過了。

對此有沒有其他方法?

謝謝。

回答

0

獲取每個作業完成時寫入數據庫。然後在每個腳本的開始處添加一條if語句,以確保其他腳本已經運行並完成(通過檢查數據庫)。

或者......

你可以有你的第一個腳本在結束運行第二個腳本?

+0

我相信不可能。這將像鎖文件。執行腳本時會發生什麼,因爲您將在數據庫中插入的答案需要很長時間才能完成腳本。如果在cron中間墜毀,該怎麼辦?您無法標記運行未完成。你會一直回報,仍然有跑步,這是不可能的。 – oneofakind

+0

當然,如果沒有進入已經完成的工作,你就不會執行下一個工作。然後下一分鐘它將再次檢查,如果條目可用(即它已完成),則運行該腳本。然後,您可以在'IF'語句中做一個簡單的比較來檢查腳本1和腳本2的最後一次運行日期,並比較以確定接下來需要運行哪一個日期。 –