【问题标题】:Intelligent Task Scheduler智能任务调度器
【发布时间】:2012-01-10 17:16:04
【问题描述】:

有人知道用于为任务创建最佳时间表的工具吗?我有许多服务器,运行多个数据库,并带有各种脚本,可以在每个数据库中导入和转换数据。

我目前正在手动安排各种 cronjobs,但这很容易出错并且难以解决异常情况,例如由于异常大的数据负载而导致运行异常长时间的作业。我正在考虑对每个任务之间的资源和依赖关系进行编码,并创建一个规划器来搜索任务执行的最佳顺序,以便每个任务在最不可能干扰任何其他任务的时间运行。

我见过Drools Planner,但它不合适,因为它具有巨大的复杂性和开销。

【问题讨论】:

    标签: machine-learning scheduled-tasks scheduling planning


    【解决方案1】:

    它是NP完全,所以如果你想要任何接近最优的东西,你就无法避免一定程度的复杂性和CPU开销。

    在我看来,您有 2 个选择:

    • 采用快速构造启发式方法,例如 First Fit Decreasing:按难度递减的任务排序(= 它们碰撞的任务数,...)并按此顺序,将它们分配到剩余的最佳位置。这不会接近最优,但会快速、简单且开销低。

    • real-time planning

    出于兴趣,Planner 中的哪些复杂性让您望而却步?

    【讨论】:

      【解决方案2】:

      任务调度问题属于 NP 完全集。因此,没有一种算法可以为您生成最佳答案。

      但也有近乎最佳的答案。

      技术: 1) 基于启发式的算法 - HEFT、MinMin、MaxMin 等... 2) 基于元启发式的算法 - 遗传算法、粒子群优化等...

      或者你可以发明新的算法。

      如果您愿意,我可以分享一些简单的代码,这些代码将生成接近最佳的时间表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-03
        • 1970-01-01
        • 2012-10-06
        • 1970-01-01
        • 2021-10-22
        • 1970-01-01
        • 1970-01-01
        • 2010-12-05
        相关资源
        最近更新 更多