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.
DefaultExecutorService
,
DistributedCallable
Modifier and Type | Method and Description |
---|---|
<T,K> Future<T> |
submit(Callable<T> task,
K... input)
Submits given Callable task for an execution on a single Infinispan node.
|
<T> List<Future<T>> |
submitEverywhere(Callable<T> task)
Submits the given Callable task for an execution on all available Infinispan nodes.
|
<T,K> List<Future<T>> |
submitEverywhere(Callable<T> task,
K... input)
Submits the given Callable task for an 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,K> Future<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> List<Future<T>> submitEverywhere(Callable<T> task)
task
- a task to execute across Infinispan cluster<T,K> List<Future<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
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.