io.vertx.core

## Interface WorkerExecutor

- All Superinterfaces:
    Measured

      public interface WorkerExecutor
      extends Measured

  An executor for executing blocking code in Vert.x .

  It provides the same `executeBlocking` operation than `Context` and `Vertx` but on a separate worker pool.

  Author:
    Julien Viet

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `Future<Void>` | `close()` Like `close(Handler)` but returns a `Future` of the asynchronous result
    `void` | `close(Handler<AsyncResult<Void>> handler)` Close the executor.
    `default <T> Future<T>` | `executeBlocking(Callable<T> blockingCodeHandler)` Like `executeBlocking(Callable, boolean)` called with ordered = true.
    `<T> Future<T>` | `executeBlocking(Callable<T> blockingCodeHandler, boolean ordered)` Safely execute some blocking code.
    `default <T> Future<T>` | `executeBlocking(Handler<Promise<T>> blockingCodeHandler)` Deprecated. instead use `executeBlocking(Callable)`
    `<T> Future<T>` | `executeBlocking(Handler<Promise<T>> blockingCodeHandler, boolean ordered)` Deprecated. instead use `executeBlocking(Callable, boolean)`
    `<T> void` | `executeBlocking(Handler<Promise<T>> blockingCodeHandler, boolean ordered, Handler<AsyncResult<T>> resultHandler)` Deprecated. instead use `executeBlocking(Callable, boolean)`
    `default <T> void` | `executeBlocking(Handler<Promise<T>> blockingCodeHandler, Handler<AsyncResult<T>> resultHandler)` Deprecated. instead use `executeBlocking(Callable)`

    - ### Methods inherited from interface io.vertx.core.metrics.Measured

      `isMetricsEnabled`

- - ### Method Detail

    - #### executeBlocking

          @Deprecated
          <T> void executeBlocking(Handler<Promise<T>> blockingCodeHandler,
                                               boolean ordered,
                                               Handler<AsyncResult<T>> resultHandler)

      Deprecated. instead use `executeBlocking(Callable, boolean)`
      Safely execute some blocking code.

      Executes the blocking code in the handler `blockingCodeHandler` using a thread from the worker pool.

      The returned future will be completed with the result on the original context (i.e. on the original event loop of the caller) or failed when the handler throws an exception.

      A `Future` instance is passed into `blockingCodeHandler`. When the blocking code successfully completes, the handler should call the `Promise.complete(T)` or `Promise.complete(Object)` method, or the `Promise.fail(java.lang.Throwable)` method if it failed.

      In the `blockingCodeHandler` the current context remains the original context and therefore any task scheduled in the `blockingCodeHandler` will be executed on this context and not on the worker thread.

      Type Parameters:
        `T` - the type of the result
      Parameters:
        `blockingCodeHandler` - handler representing the blocking code to run
        `resultHandler` - handler that will be called when the blocking code is complete
        `ordered` - if true then if executeBlocking is called several times on the same context, the executions for that context will be executed serially, not in parallel. if false then they will be no ordering guarantees

    - #### executeBlocking

          @Deprecated
          default <T> void executeBlocking(Handler<Promise<T>> blockingCodeHandler,
                                                       Handler<AsyncResult<T>> resultHandler)

      Deprecated. instead use `executeBlocking(Callable)`
      Like `executeBlocking(Handler, boolean, Handler)` called with ordered = true.

    - #### executeBlocking

          @Deprecated
          <T> Future<T> executeBlocking(Handler<Promise<T>> blockingCodeHandler,
                                                    boolean ordered)

      Deprecated. instead use `executeBlocking(Callable, boolean)`
      Same as `executeBlocking(Handler, boolean, Handler)` but with an `handler` called when the operation completes

    - #### executeBlocking

          <T> Future<T> executeBlocking(Callable<T> blockingCodeHandler,
                                        boolean ordered)

      Safely execute some blocking code.

      Executes the blocking code in the handler `blockingCodeHandler` using a thread from the worker pool.

      The returned future will be completed with the result on the original context (i.e. on the original event loop of the caller) or failed when the handler throws an exception.

      In the `blockingCodeHandler` the current context remains the original context and therefore any task scheduled in the `blockingCodeHandler` will be executed on this context and not on the worker thread.

      Type Parameters:
        `T` - the type of the result
      Parameters:
        `blockingCodeHandler` - handler representing the blocking code to run
        `ordered` - if true then if executeBlocking is called several times on the same context, the executions for that context will be executed serially, not in parallel. if false then they will be no ordering guarantees
      Returns:
        a future notified with the result

    - #### executeBlocking

          @Deprecated
          default <T> Future<T> executeBlocking(Handler<Promise<T>> blockingCodeHandler)

      Deprecated. instead use `executeBlocking(Callable)`
      Like `executeBlocking(Handler, boolean, Handler)` called with ordered = true.

    - #### executeBlocking

          default <T> Future<T> executeBlocking(Callable<T> blockingCodeHandler)

      Like `executeBlocking(Callable, boolean)` called with ordered = true.

    - #### close

          void close(Handler<AsyncResult<Void>> handler)

      Close the executor.
      Parameters:
        `handler` - the completion handler

    - #### close

          Future<Void> close()

      Like `close(Handler)` but returns a `Future` of the asynchronous result

Copyright © 2023 Eclipse. All rights reserved.