com.hazelcast.durableexecutor

## Interface DurableExecutorService

- All Superinterfaces:
    DistributedObject, Executor, ExecutorService
  All Known Implementing Classes:
    ClientDurableExecutorServiceProxy

      public interface DurableExecutorService
      extends ExecutorService, DistributedObject

  Durable implementation of `ExecutorService`. DurableExecutor provides additional methods like executing tasks on a member who is owner of a specific key DurableExecutor also provides a way to retrieve the result of an execution with the given taskId.
  See Also:
    `Supports Quorum {@link com.hazelcast.config.QuorumConfig} since 3.10 in cluster versions 3.10 and higher.`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `disposeResult(long taskId)` Disposes the result with the given taskId
    `void` | `executeOnKeyOwner(Runnable command, Object key)` Executes a task on the owner of the specified key.
    `<T> Future<T>` | `retrieveAndDisposeResult(long taskId)` Retrieves and disposes the result with the given taskId
    `<T> Future<T>` | `retrieveResult(long taskId)` Retrieves the result with the given taskId
    `<T> DurableExecutorServiceFuture<T>` | `submit(Callable<T> task)` Submits a value-returning task for execution and returns a Future representing the pending results of the task.
    `DurableExecutorServiceFuture<?>` | `submit(Runnable task)` Submits a Runnable task for execution and returns a Future representing that task.
    `<T> DurableExecutorServiceFuture<T>` | `submit(Runnable task, T result)` Submits a Runnable task for execution and returns a Future representing that task.
    `<T> DurableExecutorServiceFuture<T>` | `submitToKeyOwner(Callable<T> task, Object key)` Submits a task to the owner of the specified key and returns a Future representing that task.
    `DurableExecutorServiceFuture<?>` | `submitToKeyOwner(Runnable task, Object key)` Submits a task to the owner of the specified key and returns a Future representing that task.

    - ### Methods inherited from interface java.util.concurrent.ExecutorService

      `awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow`

    - ### Methods inherited from interface java.util.concurrent.Executor

      `execute`

    - ### Methods inherited from interface com.hazelcast.core.DistributedObject

      `destroy, getName, getPartitionKey, getServiceName`

- - ### Method Detail

    - #### submit

          <T> DurableExecutorServiceFuture<T> submit(Callable<T> task)

      Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future's `get` method will return the task's result upon successful completion.

      If you would like to immediately block waiting for a task, you can use constructions of the form `result = exec.submit(aCallable).get();`

      Note: The `Executors` class includes a set of methods that can convert some other common closure-like objects, for example, `PrivilegedAction` to `Callable` form so they can be submitted.

      Specified by:
        `submit` in interface `ExecutorService`
      Type Parameters:
        `T` - the type of the task's result
      Parameters:
        `task` - the task to submit
      Returns:
        a Future representing pending completion of the task
      Throws:
        `RejectedExecutionException` - if the task cannot be scheduled for execution
        `NullPointerException` - if the task is null

    - #### submit

          <T> DurableExecutorServiceFuture<T> submit(Runnable task,
                                                     T result)

      Submits a Runnable task for execution and returns a Future representing that task. The Future's `get` method will return the given result upon successful completion.
      Specified by:
        `submit` in interface `ExecutorService`
      Type Parameters:
        `T` - the type of the result
      Parameters:
        `task` - the task to submit
        `result` - the result to return
      Returns:
        a Future representing pending completion of the task
      Throws:
        `RejectedExecutionException` - if the task cannot be scheduled for execution
        `NullPointerException` - if the task is null

    - #### submit

          DurableExecutorServiceFuture<?> submit(Runnable task)

      Submits a Runnable task for execution and returns a Future representing that task. The Future's `get` method will return `null` upon successful completion.
      Specified by:
        `submit` in interface `ExecutorService`
      Parameters:
        `task` - the task to submit
      Returns:
        a Future representing pending completion of the task
      Throws:
        `RejectedExecutionException` - if the task cannot be scheduled for execution
        `NullPointerException` - if the task is null

    - #### retrieveResult

          <T> Future<T> retrieveResult(long taskId)

      Retrieves the result with the given taskId
      Type Parameters:
        `T` - the type of the task's result
      Parameters:
        `taskId` - combination of partitionId and sequence
      Returns:
        a Future representing pending completion of the task

    - #### disposeResult

          void disposeResult(long taskId)

      Disposes the result with the given taskId
      Parameters:
        `taskId` - combination of partitionId and sequence

    - #### retrieveAndDisposeResult

          <T> Future<T> retrieveAndDisposeResult(long taskId)

      Retrieves and disposes the result with the given taskId
      Type Parameters:
        `T` - the type of the task's result
      Parameters:
        `taskId` - combination of partitionId and sequence
      Returns:
        a Future representing pending completion of the task

    - #### executeOnKeyOwner

          void executeOnKeyOwner(Runnable command,
                                 Object key)

      Executes a task on the owner of the specified key.
      Parameters:
        `command` - a task executed on the owner of the specified key
        `key` - the specified key

    - #### submitToKeyOwner

          <T> DurableExecutorServiceFuture<T> submitToKeyOwner(Callable<T> task,
                                                               Object key)

      Submits a task to the owner of the specified key and returns a Future representing that task.
      Parameters:
        `task` - task submitted to the owner of the specified key
        `key` - the specified key
      Returns:
        a Future representing pending completion of the task

    - #### submitToKeyOwner

          DurableExecutorServiceFuture<?> submitToKeyOwner(Runnable task,
                                                           Object key)

      Submits a task to the owner of the specified key and returns a Future representing that task.
      Parameters:
        `task` - task submitted to the owner of the specified key
        `key` - the specified key
      Returns:
        a Future representing pending completion of the task

Copyright © 2019. All rights reserved.