public Task <ExecutionResult> Enqueue(ExecutionTask executetionTask) { var task = new Task <ExecutionResult>(() => Execute(executetionTask)); _queue.Enqueue(task); return(task); }
public Task <ExecutionResult> Enqueue(ExecutionTask executetionTask) { return(_runners.OrderBy(r => r.QueueLength).First().Enqueue(executetionTask)); }
private ExecutionResult Execute(ExecutionTask executetionTask) { var result = executetionTask.WorkItem.Work(executetionTask.PreviousItemResult?.Result); return(new ExecutionResult(executetionTask.WorkItem, result)); }
public void Enqueue(Guid sourceId, ExecutionTask executetionTask) { _runnerPool.Enqueue(executetionTask).ContinueWith(t => EndExecution(t, sourceId)); }