2013-01-25 21 views
0

(我提前道歉,因爲我的問題不好表述,請考慮英語不是我的第一語言)。cron的重新分區

我有幾個進程(crons),我想「優化」時間表何時啓動它們。

例如,cron c1每3分鐘啓動一次,cron c1每7分鐘啓動一次,cron c3每18分鐘啓動一次。假設它們在停止前僅持續幾秒鐘。

這裏的時間單位是1分鐘。

現在,我想要的是這些cron是分佈式的,所以我們沒有一個時間,其中很多開始,然後長時間沒有cron的時間間隔。例如,如果c1和c3都在時間0開始,那麼他們將每18分鐘一次再次開始。最好在時間0開始cron c1,然後在時間1開始c3,這樣它們永遠不會一起啓動。

所以這個想法是,給定一個具有周期性的cron列表來計劃一個時間表,這樣每個cron之間儘可能多的時間,當兩個cron一起開始時儘可能少的時間。

是否有一些關於這些問題的着名算法?

這個問題的實際應用是:約200克朗。其中一些是每5或10或30分鐘發射並持續非常短(幾秒),一些(〜20 - 25)每2小時發射一次並持續幾分鐘。所以這個想法也是,大克隆不是同時啓動的。

我是一名數學家,而不是計算機科學家,所以我在https://math.stackexchange.com/上問了這個問題,因爲我認爲這對數學家來說也是一個「很好」的問題。

回答

0

我認爲你應該考慮你的每個cron使用的資源,然後從中安排你的工作。

我不認爲有一個特定的算法。

+0

問題是:我現在還不知道。這個想法是,最終用戶可以通過說他希望他們每運行5/10分鐘來配置cron。有幾個用戶可以做到這一點,他們不知道其他用戶會問什麼。所以我的目標是尊重最終用戶的需求,並通過這種算法分配cron。 – Djaian