public Scheduler createOrGetParallelScheduler(String name, int maxConcurrency) { synchronized (schedulers) { if (!schedulers.containsKey(name)) { ParallelScheduler s = new ParallelScheduler(name, maxConcurrency); schedulers.put(name, s); executor.execute(s); } return schedulers.get(name); } }
@Override public void runJobInScheduler(final Job runningJob) { // submit this job to a FixedThreadPool so that at most maxConcurrencyJobs running executor.execute(() -> runJob(runningJob)); } }
public class ParallelSuite extends Suite { public ParallelSuite(Class<?> klass, RunnerBuilder builder) throws InitializationError { super(klass, builder); setScheduler(new ParallelScheduler()); } }