Esempio n. 1
0
        public Task <ExecutionResult> Enqueue(ExecutionTask executetionTask)
        {
            var task = new Task <ExecutionResult>(() => Execute(executetionTask));

            _queue.Enqueue(task);
            return(task);
        }
Esempio n. 2
0
 public Task <ExecutionResult> Enqueue(ExecutionTask executetionTask)
 {
     return(_runners.OrderBy(r => r.QueueLength).First().Enqueue(executetionTask));
 }
Esempio n. 3
0
        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));
 }