code: public static VertxCompletableFuture<Void> runBlockingAsyncOn(Vertx vertx, WorkerExecutor worker, Runnable runnable) {
      return runBlockingAsyncOn(Objects.requireNonNull(vertx).getOrCreateContext(), worker, runnable);
    }
docs: Returns a new CompletableFuture that is asynchronously completed by a action running in the provided
  Vert.x worker thread pool.
  <p>
  This method is different from {@link CompletableFuture#runAsync(Runnable)} as it does not use a fork join
  executor, but the worker thread pool.
  
  @param vertx    the Vert.x instance
  @param worker   the WorkerExecution on which the runnable is to be executed
  @param runnable the action, when its execution completes, it completes the returned CompletableFuture. If the
  execution throws an exception, the returned CompletableFuture is completed exceptionally.
  @return the new CompletableFuture