in src/main/java/com/spotify/futures/CompletableFutures.java [782:791]
public static <T> CompletableFuture<T> poll(
final Supplier<Optional<T>> pollingTask,
final Duration frequency,
final ScheduledExecutorService executorService) {
final CompletableFuture<T> result = new CompletableFuture<>();
final ScheduledFuture<?> scheduled = executorService.scheduleAtFixedRate(
() -> pollTask(pollingTask, result), 0, frequency.toMillis(), TimeUnit.MILLISECONDS);
result.whenComplete((r, ex) -> scheduled.cancel(true));
return result;
}