Package org.apache.ignite.compute
Class ComputeTaskAdapter<T,R>
- java.lang.Object
-
- org.apache.ignite.compute.ComputeTaskAdapter<T,R>
-
- Type Parameters:
T- Type of the task argument.R- Type of the task result returning fromComputeTask.reduce(List)method.
- All Implemented Interfaces:
Serializable,ComputeTask<T,R>
- Direct Known Subclasses:
ComputeTaskSplitAdapter
public abstract class ComputeTaskAdapter<T,R> extends Object implements ComputeTask<T,R>
Convenience adapter forComputeTaskinterface. Here is an example of howComputeTaskAdaptercan be used:public class MyFooBarTask extends ComputeTaskAdapter<String, String> { // Inject load balancer. @LoadBalancerResource ComputeLoadBalancer balancer; // Map jobs to grid nodes. public Map<? extends ComputeJob, ClusterNode> map(List<ClusterNode> subgrid, String arg) throws IgniteCheckedException { Map<MyFooBarJob, ClusterNode> jobs = new HashMap<MyFooBarJob, ClusterNode>(subgrid.size()); // In more complex cases, you can actually do // more complicated assignments of jobs to nodes. for (int i = 0; i < subgrid.size(); i++) { // Pick the next best balanced node for the job. jobs.put(new MyFooBarJob(arg), balancer.getBalancedNode()) } return jobs; } // Aggregate results into one compound result. public String reduce(List<ComputeJobResult> results) throws IgniteCheckedException { // For the purpose of this example we simply // concatenate string representation of every // job result StringBuilder buf = new StringBuilder(); for (ComputeJobResult res : results) { // Append string representation of result // returned by every job. buf.append(res.getData().string()); } return buf.string(); } }For more information refer toComputeTaskdocumentation.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ComputeTaskAdapter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ComputeJobResultPolicyresult(ComputeJobResult res, List<ComputeJobResult> rcvd)Default implementation which will wait for all jobs to complete before callingComputeTask.reduce(List)method.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.ignite.compute.ComputeTask
map, reduce
-
-
-
-
Method Detail
-
result
public ComputeJobResultPolicy result(ComputeJobResult res, List<ComputeJobResult> rcvd) throws IgniteException
Default implementation which will wait for all jobs to complete before callingComputeTask.reduce(List)method.If remote job resulted in exception (
ComputeJobResult.getException()is notnull), thenComputeJobResultPolicy.FAILOVERpolicy will be returned if the exception is instance ofClusterTopologyExceptionorComputeExecutionRejectedException, which means that remote node either failed or job execution was rejected before it got a chance to start. In all other cases the exception will be rethrown which will ultimately cause task to fail.- Specified by:
resultin interfaceComputeTask<T,R>- Parameters:
res- Received remote grid executable result.rcvd- All previously received results.- Returns:
- Result policy that dictates how to process further upcoming job results.
- Throws:
IgniteException- If handling a job result caused an error effectively rejecting a failover. This exception will be thrown out ofComputeTaskFuture.get()method.
-
-