I don’t think there is a framework that suits your needs out of the box. I know that you said that you are not looking for a work / flow scheduler, but I think your best bet is probably to roll your own optimization / prioritization code around a “dumb” work / flow planning structure like Quartz (or whatever something else that you have). If you go with Quartz, the API can probably provide you with some information useful for points 3 and 4 of your optimization criteria. In addition, Quartz has the concept of "priority" of work, so once you have calculated the optimized priority, it should make it easier to plan for execution.
If you find a framework that does what you ask for, send it here. I am sure there are others who could use something like that.
source share