任务调度框架 - 而不是线程调度!

时间:2010-09-09 15:30:19

标签: java scheduling gantt-chart resource-scheduling

我正在开发一个Java应用程序,它应该允许用户优化他们的日程安排。为此,我需要一个框架来帮助计算“任务”的最佳时间,注意:

  1. 所需资源和资源使用限制
  2. 任务之间的依赖关系(虽然只能与F-> S关系)
  3. 最早和最晚的开始 - 结束时间,松弛时间
  4. 基线与实际时间 - 允许报告实际的开始和结束时间,相应地更新其余任务
  5. 一些澄清:我既不是在寻找一个框架来绘制这些甘特,也不是在寻找一个处理一个特定问题领域的框架(例如教室),而且绝对不是一个处理线程调度的框架。

    谢谢!

3 个答案:

答案 0 :(得分:5)

我认为没有一个框架可以满足您的需求。我知道你说你不是在寻找一个工作/线程调度程序,但我认为最好的办法是围绕一个“愚蠢”的工作/线程调度框架(如Quartz)推出自己的优化/优先级代码(或者无论你有什么地方)。如果您使用Quartz,API可能会为您提供一些对优化条件的第3项和第4项有用的信息。此外,Quartz具有作业“优先级”概念,因此一旦计算出优化的优先级,它就应该使执行安排变得容易。

如果你确实找到了一个符合你要求的框架,请在这里回复 - 我确信还有其他人可以使用类似的东西。

答案 1 :(得分:0)

您可以查看project management software。看来你需要用java编写,能够修改代码。它真的缩小了列表,但我做了一个快速扫描,我看到其中至少有两个可以提供帮助(Endeavor和Project.net)。

答案 2 :(得分:0)

也许您需要的是进化/遗传算法来生成优化的时间表?

如果是,您可以查看这个Watchmaker框架: http://watchmaker.uncommons.org/

使用进化/遗传算法,它随机生成一个时间表池。您的主要重点是定义评分标准,以评估生成的每个计划。然后让它(生成的时间表)代代相传,直到它最适合你。