Example #1
0
        private async Task <RunResultMessage> ProcessInternalAsync(CreateAlgorithmMessage request)
        {
            _logger.LogInformation("Processing message - Run Id: " + request.Run.Id);

            using (_container.OpenScope())
            {
                using (var uow = _unitOfWorkProvider.Create(DbContextOptions.DisableTransactionMode))
                {
                    uow.Context.Runs.Attach(request.Run);

                    var result = await _launchService.LaunchAsync(request.Algorithm, request.Run,
                                                                  new RunSettings { Arguments = request.Arguments, Timeout = request.Timeout });

                    return(new RunResultMessage()
                    {
                        StdOut = result.StdOut,
                        StdErr = result.StdErr,
                        CreatedAt = result.CreatedAt,
                        FinishedAt = result.FinishedAt,
                        FileId = result.FileId,
                        Result = result.Result,
                        RunId = result.RunId
                    });
                }
            }
        }
Example #2
0
        private async Task <RunResult> CreateRunAndLaunch(Algorithm algorithm, List <Argument> args, int?timeout = null)
        {
            using (var uow = UnitOfWorkProvider.Create(DbContextOptions.DisableTransactionMode))
            {
                var run = new Run()
                {
                    AlgorithmId = algorithm.Id,
                    UserId      = CurrentUserProvider.Id,
                    Result      = RunResultType.NotFinished
                };

                _runRepository.Insert(run);
                await uow.CommitAsync();

                var runSettings = new RunSettings {
                    Arguments = args, Timeout = timeout
                };
                return(await _launchService.LaunchAsync(algorithm, run, runSettings));
            }
        }