コード例 #1
0
        /// <summary>
        /// Відправляє задачу на виконання.
        /// </summary>
        /// <param name="scriptTask">Об'єкт задачі, яку потрібно виконати.</param>
        /// <returns>Об'єкт <see cref="System.Threading.Tasks.Task"/>, за допомогою якого можна отримати результат виконання.</returns>
        public async Task <CSharpTaskCompletionResult> RunTask(CSharpScriptTask scriptTask)
        {
            if (scriptTask.Id == default(Guid))
            {
                scriptTask.Id = Guid.NewGuid();
            }
            var taskCompletionSource = new TaskCompletionSource <CSharpTaskCompletionResult>();
            var executionContext     = new CSharpScriptExecutionContext(scriptTask, taskCompletionSource);

            _resultsDispatchActorRef.Tell(executionContext);
            var worker = _workersBalancer.GetNextWorkerDeplInfo();
            var actor  = _actorSystem.ActorOf(_workerRouters[worker]);

            actor.Tell(scriptTask);
            CSharpTaskCompletionResult result = await taskCompletionSource.Task;

            scriptTask.CompletionResult = result;
            return(result);
        }
コード例 #2
0
        public async Task <ActionResult> RunTask(CSharpScriptTask scriptTask)
        {
            await _mainSystem.RunTask(scriptTask);

            return(View("RunTask", scriptTask));
        }
コード例 #3
0
        public ActionResult RunTask()
        {
            var scriptTask = new CSharpScriptTask();

            return(View("RunTask", scriptTask));
        }
コード例 #4
0
        /// <summary>
        /// Відправляє задачу на виконання.
        /// </summary>
        /// <param name="taskContent">Код задачі, яку потрібно виконати.</param>
        /// <returns>Об'єкт <see cref="System.Threading.Tasks.Task"/>, за допомогою якого можна отримати результат виконання.</returns>
        public async Task <CSharpTaskCompletionResult> RunTask(string taskContent)
        {
            var scriptTask = new CSharpScriptTask(taskContent);

            return(await RunTask(scriptTask));
        }