コード例 #1
0
ファイル: Runner.cs プロジェクト: Firstclass37/SuperWorkflow
        public Task <ExecutionResult> Enqueue(ExecutionTask executetionTask)
        {
            var task = new Task <ExecutionResult>(() => Execute(executetionTask));

            _queue.Enqueue(task);
            return(task);
        }
コード例 #2
0
 public Task <ExecutionResult> Enqueue(ExecutionTask executetionTask)
 {
     return(_runners.OrderBy(r => r.QueueLength).First().Enqueue(executetionTask));
 }
コード例 #3
0
ファイル: Runner.cs プロジェクト: Firstclass37/SuperWorkflow
        private ExecutionResult Execute(ExecutionTask executetionTask)
        {
            var result = executetionTask.WorkItem.Work(executetionTask.PreviousItemResult?.Result);

            return(new ExecutionResult(executetionTask.WorkItem, result));
        }
コード例 #4
0
 public void Enqueue(Guid sourceId, ExecutionTask executetionTask)
 {
     _runnerPool.Enqueue(executetionTask).ContinueWith(t => EndExecution(t, sourceId));
 }