Interface ITrackableTask
Assembly: Alachisoft.NCache.Runtime.dll
Syntax
[Obsolete("This feature is not in active development and may be removed in a future update.")]
public interface ITrackableTask
Properties
TaskId
Unique GUID identification of MapReduce task.
Declaration
string TaskId { get; }
Property Value
Type | Description |
---|---|
System.String |
Examples
Example prints task id
ITrackableTask taskTracker = cache.ExecuteTask(prodAggregatorTask, new OrderKeyFilter());
Console.WriteLine("Task Id: " + taskTracker.TaskId);
TaskStatus
Gets the task’s status and contains following values: Waiting, InProgress, Completed, Cancelled, Failed.
Declaration
TaskStatus TaskStatus { get; }
Property Value
Type | Description |
---|---|
TaskStatus |
Examples
Example checks for task status after an interval of 5 seconds
ITrackableTask taskTracker = cache.ExecuteTask(prodAggregatorTask, new OrderKeyFilter());
int count = 0;
do
{
Thread.Sleep(5000);
if (count == 2)
{
taskTracker.CancelTask();
break;
}
else count++;
} while (taskTracker.TaskStatus.Progress == Alachisoft.NCache.Runtime.MapReduce.TaskStatus.Status.InProgress);
Methods
CancelTask()
Cancels the already running task.
Declaration
void CancelTask()
Examples
Example cancels task if it is not completed in 15 seconds
ITrackableTask taskTracker = cache.ExecuteTask(prodAggregatorTask, new OrderKeyFilter());
int count = 0;
do
{
Thread.Sleep(5000);
if (count == 2)
{
taskTracker.CancelTask();
break;
}
else count++;
} while (taskTracker.TaskStatus.Progress == Alachisoft.NCache.Runtime.MapReduce.TaskStatus.Status.InProgress);
GetResult()
This is a blocking call that waits for the callback from the server about the task’s completion, failure or cancellation in the form of an ITaskResult.
Declaration
ITaskResult GetResult()
Returns
Type | Description |
---|---|
ITaskResult | Returns an ITaskResult instance |
Examples
Example gets task result
ITrackableTask taskTracker = cache.ExecuteTask(prodAggregatorTask, new OrderKeyFilter());
ITaskResult result = taskTracker.GetResult();
GetResult(Int32)
If no result is obtained within the provided timeout, OperationFailedException will be thrown.
Declaration
ITaskResult GetResult(int timeout)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | timeout | Time in millisecond in which if result is not returned, thread will be terminated and exception or null will be given |
Returns
Type | Description |
---|---|
ITaskResult | Returns an ITaskResult instance |
Examples
Example gets task result with a timeout of 5 seconds
ITrackableTask taskTracker = cache.ExecuteTask(prodAggregatorTask, new OrderKeyFilter());
ITaskResult result = taskTracker.GetResult(5000);
Events
OnMapReduceComplete
Users can register a callback on the MapReduce task that is called when task execution is completed, failed or cancelled with a parameter response that encapsulates status of the task and result (if completed).
Declaration
event MapReduceCallback OnMapReduceComplete
Event Type
Type | Description |
---|---|
MapReduceCallback |
Examples
Example registers a callback
ITrackableTask taskTracker = cache.ExecuteTask(prodAggregatorTask, new OrderKeyFilter());
taskTracker.OnMapReduceComplete += new MapReduceCallback(MapReduceCompleted);