Apache Ignite.NET
Apache.Ignite.Core.Compute.ComputeTaskAdapter< TArg, TJobRes, TTaskRes > Class Template Referenceabstract

Convenience adapter for IComputeTask<TArg,TJobRes,TTaskRes> interface More...

Inheritance diagram for Apache.Ignite.Core.Compute.ComputeTaskAdapter< TArg, TJobRes, TTaskRes >:
Apache.Ignite.Core.Compute.IComputeTask< TArg, TJobRes, TTaskRes > Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter< TArg, TJobRes, TTaskRes >

Public Member Functions

virtual ComputeJobResultPolicy OnResult (IComputeJobResult< TJobRes > res, IList< IComputeJobResult< TJobRes >> rcvd)
 Default implementation which will wait for all jobs to complete before calling IComputeTask<A,T,R>.Reduce method. If remote job resulted in exception IComputeJobResult<T>.Exception() is not null), then ComputeJobResultPolicy.Failover policy will be returned if the exception is instance of ClusterTopologyException or ComputeExecutionRejectedException, 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. More...
 
abstract IDictionary< IComputeJob< TJobRes >, IClusterNodeMap (IList< IClusterNode > subgrid, TArg arg)
 This method is called to map or split Ignite task into multiple Ignite jobs. This is the first method that gets called when task execution starts. More...
 
abstract TTaskRes Reduce (IList< IComputeJobResult< TJobRes >> results)
 Reduces (or aggregates) results received so far into one compound result to be returned to caller via task. More...
 

Detailed Description

Member Function Documentation

abstract IDictionary<IComputeJob<TJobRes>, IClusterNode> Apache.Ignite.Core.Compute.ComputeTaskAdapter< TArg, TJobRes, TTaskRes >.Map ( IList< IClusterNode subgrid,
TArg  arg 
)
pure virtual
Parameters
subgridNodes available for this task execution. Note that order of nodes is guaranteed to be randomized by container. This ensures that every time you simply iterate through Ignite nodes, the order of nodes will be random which over time should result into all nodes being used equally.
argTask execution argument. Can be null. This is the same argument as the one passed into ICompute.Execute() methods.
Returns
Map of Ignite jobs assigned to subgrid node. If null or empty map is returned, exception will be thrown.

Implemented in Apache.Ignite.Core.Compute.ComputeTaskSplitAdapter< TArg, TJobRes, TTaskRes >.

virtual ComputeJobResultPolicy Apache.Ignite.Core.Compute.ComputeTaskAdapter< TArg, TJobRes, TTaskRes >.OnResult ( IComputeJobResult< TJobRes >  res,
IList< IComputeJobResult< TJobRes >>  rcvd 
)
virtual
Parameters
resReceived remote Ignite executable result.
rcvdAll previously received results.
Returns
Result policy that dictates how to process further upcoming job results.
abstract TTaskRes Apache.Ignite.Core.Compute.ComputeTaskAdapter< TArg, TJobRes, TTaskRes >.Reduce ( IList< IComputeJobResult< TJobRes >>  results)
pure virtual

Note, that if some jobs did not succeed and could not be failed over then the list of results passed into this method will include the failed results. Otherwise, failed results will not be in the list.

Parameters
resultsReceived job results. Note that if task class has ComputeTaskNoResultCacheAttribute attribute, then this list will be empty.
Returns
Task result constructed from results of remote executions.