2012-12-17 98 views
1

我對linux命令行和shell腳本相當陌生,因此請和我一起袒護。防止cronjobs重疊

我在crontab中設置了3個不同的作業(稱爲jobA,jobB,jobC),它們以不同的時間間隔運行,並在一天中的不同時間開始。例如,jobA每小時運行一次,時間爲每小時5分鐘,jobB每9分鐘運行30分鐘,每小時運行39分鐘,jobC每15分鐘運行一次。他們不相互依賴,但由於各種原因,他們不能同時運行。

問題是,有時一個作業需要很長時間才能運行,另一個作業在第一個作業完成之前就開始了,從而引發問題。

是否有某種方法排隊或假脫機這些作業,以便在當前正在運行的作業完成之前不會啓動?我嘗試使用this solution,但這並不能保證待處理的作業將按照它們應該開始的順序繼續。隊列將是最好的,但我找不到有關如何做到這一點的任何事情。

請幫忙!

回答

0

你不能這樣做使用cron。 Cron用於在特定時間運行特定命令。您可以通過您提出的解決方案來實現,但這會增加更多的複雜性。

我建議使用高級語言(如java)編寫/編寫需求,並使用多線程程序來實現您所需要的功能。

Control-m是另一種調度軟件,具有很多其他功能。你將能夠將上面的用例集成到它中。