public static void runParallel(Runnable... runnables) { Flux<Runnable> stream = Flux.just(runnables); runParallel(stream); }
public static void runParallel(Runnable... runnables) { Stream<Runnable> stream = Arrays.stream(runnables); runParrallelStream(stream); }
public static void runParallel(Runnable... runnables) { FluentFutureStream.of( Arrays.stream(runnables) .map(runnable -> CompletableFuture.supplyAsync(toVoidSupplier(runnable)))) .join(); }
public void clean() { Runnables .runParrallelStream( cleanupTasks.stream() .map(cleanupTask -> cleanupTask::run)); }
private void startDockerRabbits() { Runnables.runParallel( rabbitMQ1::start, rabbitMQ2::start, rabbitMQ3::start); }
public static void runParrallelStream(Stream<Runnable> stream) { FluentFutureStream.of(stream .map(runnable -> CompletableFuture.supplyAsync(toVoidSupplier(runnable)))) .join(); }
@Override public void afterEach(ExtensionContext extensionContext) { Runnables.runParrallelStream(Lists.reverse(registrableExtensions) .stream() .map(ext -> Throwing.runnable(() -> ext.afterEach(extensionContext)))); }
@Test void shouldActuallyRunInParallel() throws InterruptedException { int parallel = 2; CountDownLatch countDownLatch = new CountDownLatch(parallel); Runnable runnable = countDownLatch::countDown; Runnables.runParallel(Flux.range(0, 2).map(i -> runnable)); assertThat(countDownLatch.await(2, TimeUnit.MINUTES)).isTrue(); } }
@Override public void afterAll(ExtensionContext extensionContext) { Runnables.runParrallelStream(Lists.reverse(registrableExtensions) .stream() .map(ext -> Throwing.runnable(() -> ext.afterAll(extensionContext)))); }
@Test void shouldActuallyRunThings() { AtomicBoolean sideEffect = new AtomicBoolean(false); Runnables.runParallel(() -> sideEffect.set(true)); assertThat(sideEffect).isTrue(); }
@Override public void beforeAll(ExtensionContext extensionContext) { Runnables.runParrallelStream(registrableExtensions .stream() .map(ext -> Throwing.runnable(() -> ext.beforeAll(extensionContext)))); }
@Override public void beforeEach(ExtensionContext context) throws Exception { startDockerRabbits(); Runnables.runParallel( Throwing.runnable(() -> rabbitMQ2.join(rabbitMQ1)), Throwing.runnable(() -> rabbitMQ3.join(rabbitMQ1))); cluster = new DockerRabbitMQCluster(rabbitMQ1, rabbitMQ2, rabbitMQ3); }
@Override public void beforeEach(ExtensionContext extensionContext) { Runnables.runParrallelStream(registrableExtensions .stream() .map(ext -> Throwing.runnable(() -> ext.beforeEach(extensionContext)))); }
public void stop() { Runnables.runParallel( Throwing.runnable(rabbitMQ1::stop).orDoNothing(), Throwing.runnable(rabbitMQ2::stop).orDoNothing(), Throwing.runnable(rabbitMQ3::stop).orDoNothing()); }