ClusterExecutor
or CacheStream
instead.public interface DistributedExecutorService extends ExecutorService
Every DistributedExecutorService is bound to one particular cache. Tasks submitted will have
access to key/value pairs from that particular cache if and only if the task submitted is an
instance of DistributedCallable
. Also note that there is nothing preventing a user from
submitting a familiar Runnable
or Callable
just like to any other
ExecutorService
. However, DistributedExecutorService, as it name implies, will likely
migrate submitted Callable or Runnable to another JVM in Infinispan cluster, execute it and
return a result to task invoker.
Note that due to potential task migration to other nodes every Callable
,
Runnable
and/or DistributedCallable
submitted must be either Serializable
or Externalizable
. Also the value returned from a callable must be Serializable
or Externalizable
. Unfortunately if the value returned is not serializable then a
NotSerializableException
will be thrown.
All CompletableFuture
returned to the caller may be cancelled, however if interruption is desired,
(ie. mayInterruptIfRunning == true), it will only be performed if done on the original
CompletableFuture returned via one of the various submit methods. Any chained
futures from the original will only attempt to cancel the task result. If interruption is needed and this task
was found to be operating on a remote node it will send a cancellation command to the remote node in an attempt to
stop it early using standard java Thread.interrupt()
on the thread processing that task.
DefaultExecutorService
,
DistributedCallable
Modifier and Type | Method and Description |
---|---|
<T> DistributedTaskBuilder<T> |
createDistributedTaskBuilder(Callable<T> callable)
Deprecated.
Returns DistributedTaskBuilder for this DistributedExecutorService and a given Callable.
|
<T> CompletableFuture<T> |
submit(Address target,
Callable<T> task)
Deprecated.
Submits the given Callable task for execution on the specified target Infinispan node.
|
<T> CompletableFuture<T> |
submit(Address target,
DistributedTask<T> task)
Deprecated.
Submits the given DistributedTask for execution on the specified target Infinispan node.
|
<T,K> CompletableFuture<T> |
submit(Callable<T> task,
K... input)
Deprecated.
Submits the given Callable task for execution on a single Infinispan node.
|
<T,K> CompletableFuture<T> |
submit(DistributedTask<T> task,
K... input)
Deprecated.
Submits the given DistributedTask for execution on a single Infinispan node.
|
<T> List<CompletableFuture<T>> |
submitEverywhere(Callable<T> task)
Deprecated.
Submits the given Callable task for execution on all available Infinispan nodes.
|
<T,K> List<CompletableFuture<T>> |
submitEverywhere(Callable<T> task,
K... input)
Deprecated.
Submits the given Callable task for execution on all available Infinispan nodes using input
keys specified by K input.
|
<T> List<CompletableFuture<T>> |
submitEverywhere(DistributedTask<T> task)
Deprecated.
Submits the given DistributedTask for execution on all available Infinispan nodes.
|
<T,K> List<CompletableFuture<T>> |
submitEverywhere(DistributedTask<T> task,
K... input)
Deprecated.
Submits the given DistributedTask for execution on all available Infinispan nodes using input
keys specified by K input.
|
awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow, submit, submit, submit
<T> CompletableFuture<T> submit(Address target, Callable<T> task)
T
- target
- address of Infinispan node selected for execution of the tasktask
- a task to execute on selected Infinispan node<T> CompletableFuture<T> submit(Address target, DistributedTask<T> task)
T
- target
- address of Infinispan node selected for execution of the tasktask
- a task to execute on selected Infinispan node<T,K> CompletableFuture<T> submit(Callable<T> task, K... input)
Execution environment will chose an arbitrary node N hosting some or all of the keys specified as input. If all keys are not available locally at node N they will be retrieved from the cluster.
task
- a task to execute across Infinispan clusterinput
- input keys for this task, effective if and only if task is instance of DistributedCallable
<T,K> CompletableFuture<T> submit(DistributedTask<T> task, K... input)
Execution environment will chose an arbitrary node N hosting some or all of the keys specified as input. If all keys are not available locally at node N they will be retrieved from the cluster.
task
- a DistributedTask to execute across Infinispan clusterinput
- input keys for this task, effective if and only if task's callable is instance of
DistributedCallable
<T> List<CompletableFuture<T>> submitEverywhere(Callable<T> task)
task
- a task to execute across Infinispan cluster<T> List<CompletableFuture<T>> submitEverywhere(DistributedTask<T> task)
task
- a task to execute across Infinispan cluster<T,K> List<CompletableFuture<T>> submitEverywhere(Callable<T> task, K... input)
Execution environment will chose all nodes in Infinispan cluster where input keys are local, migrate given Callable instance to those nodes, execute it and return result as a list of Futures
task
- a task to execute across Infinispan clusterinput
- input keys for this task, effective if and only if task is instance of DistributedCallable
<T,K> List<CompletableFuture<T>> submitEverywhere(DistributedTask<T> task, K... input)
Execution environment will chose all nodes in Infinispan cluster where input keys are local, migrate given Callable instance to those nodes, execute it and return result as a list of Futures
task
- a task to execute across Infinispan clusterinput
- input keys for this task, effective if and only if task is instance of DistributedCallable
<T> DistributedTaskBuilder<T> createDistributedTaskBuilder(Callable<T> callable)
T
- callable
- the execution unit of DistributedTaskDistributedTask
Copyright © 2018 JBoss, a division of Red Hat. All rights reserved.