2012-01-10 143 views
2

是否有人知道創建最佳任務計劃的工具?我有許多服務器,運行多個數據庫,使用各種腳本將數據導入和導出每個數據庫。智能任務計劃程序

我目前手動調度各種cronjob,但這很容易出錯並且很難解釋異常,例如由於異常大的數據負載而需要異常長時間運行的作業。我正在考慮對每個任務之間的資源和依賴關係進行編碼,並創建一個計劃程序來搜索最佳任務執行順序,以便每個任務在最不可能干擾任何其他任務的時間運行。

我見過Drools Planner,但它不合適,因爲它是巨大的複雜性和開銷。

回答

1

這是NP完成,所以如果你想要接近最優的東西,你不能避免一定的複雜度和CPU開銷。

當我看到它,你有兩個選擇:

  • 去一個快速建設的啓發式如第一嵌入減少:排序上降低難度的任務(=它們與碰撞任務的數量, ...)並按此順序,將它們分配給最好的剩餘點。這不會接近最佳,但它會快速,簡單並且開銷很低。

  • 前往real-time planning

出於興趣,Planner中的複雜程度讓您感到驚恐嗎?

0

任務調度問題出現在NP-complete集合中。所以沒有一個算法能爲你提供最好的答案。

但有近乎最佳的答案。

技術: 1)啓發式算法 - 分量,敏敏,MAXMIN等等 2)啓發式算法的基礎 - 遺傳算法,粒子羣算法等..

,或者你可以發明新算法。

我可以分享簡單的代碼,如果你願意,它可以生成接近最優的時間表。