I am looking to implement a Java application that will compute a set of tasks to execute. The tasks will have dependencies on each other, forming a directed graph. Is ther
Dexecutor to the rescue, Dexecutor is designed to execute dependent independent tasks in a reliable way.
DexecutorConfig config = new DexecutorConfig<>(executorService, new SleepyTaskProvider());
DefaultDexecutor executor = new DefaultDexecutor(config);
// Graph building
executor.addDependency(1, 2);
executor.addDependency(1, 2);
executor.addDependency(1, 3);
executor.addDependency(3, 4);
executor.addDependency(3, 5);
executor.addDependency(3, 6);
executor.addDependency(2, 7);
executor.addDependency(2, 9);
executor.addDependency(2, 8);
executor.addDependency(9, 10);
executor.addDependency(12, 13);
executor.addDependency(13, 4);
executor.addDependency(13, 14);
executor.addIndependent(11);
//Execution
executor.execute(ExecutionConfig.NON_TERMINATING);
Refer How Do I? for more detail
Why Dexecutor
Usefull links
Disclaimer : I am the owner