Exemplo n.º 1
0
        private async Task ExecuteJobWithDockerAsync(Job job)
        {
            //Add Slices To Docker Queue
            foreach (var slice in job.Slices.Where(p => p.Status == SliceStatus.Pending))
            {
                _dockerQueue.Enqueue(slice);
            }

            if (!_dockerJobRunning)
            {
                _dockerJobRunning = true;
                _dockerService.CreateDockerClient(_configurationService.DockerHostUrl);

                string image = _configurationService.Image;
                await _dockerService.PullImageAsync(image);

                for (int i = 0; i < _configurationService.MaxConcurrency; i++)
                {
                    await ExecuteJobSliceWithDockerAsync();
                }
            }
        }