javaschedulinggantt-chartresource-scheduling

Task scheduling frameworks - not thread scheduling!


I'm working on a Java application which should allow users to optimize their daily schedule. For that, I need a framework that helps calculate optimal times for "tasks" taking note of:

  1. Required resources and resource usage limits
  2. Dependencies between tasks (can do with only F->S relations though)
  3. Earliest and latest start-finish times, slack times
  4. Baseline vs. actual times - allowing to report actual start and finish times, updating the rest of the tasks accordingly

Some clarifications: I am not looking for neither a framework to draw these gantts, nor a framework that deals with one specific problem domain (such as classrooms), and definitely not a framework that deals with thread scheduling.

Thanks!


Solution

  • I don't think there is a framework that will suit your needs out of the box. I know you said you're not looking for a job/thread scheduler, but I think your best bet is probably to roll your own optimization/prioritization code around a "dumb" job/thread scheduling framework like Quartz (or whatever you have in place). If you go with Quartz, the API can probably provide you with some information useful for items 3 and 4 of your optimization criteria. Additionally, Quartz has a job "priority" concept, so once you've computed the optimized priority, it should make scheduling the execution easy.

    If you do find a framework that does what you ask, please post back here -- I'm sure there are others who could use something similar.