public void RefreshOpenTasks() { if (_settings.ServerSettings.JsonDirectory == null) { throw new DistSimException("Jsondirectory was null"); } if (_settings.ServerSettings.JsonDirectory.Count == 0) { throw new DistSimException("Jsondirectory was empty"); } foreach (string singledir in _settings.ServerSettings.JsonDirectory) { if (OpenTasks.Count > 1000) { break; } DirectoryInfo di = new DirectoryInfo(singledir); if (!di.Exists) { di.Create(); Thread.Sleep(100); } var files = di.GetFiles("*.json"); var activeFiles = ActiveTasks.Select(x => x.OriginalJsonFilePath).ToList(); var openTaskFiles = OpenTasks.Select(x => x.OriginalJsonFilePath).ToList(); foreach (var fileInfo in files) { if (activeFiles.Contains(fileInfo.FullName)) { _logger.Info("Currently processing " + fileInfo.Name, _threadId); continue; } if (openTaskFiles.Contains(fileInfo.FullName)) { _logger.Info("Currently in queue " + fileInfo.Name, _threadId); continue; } ServerExecutionTask set = new ServerExecutionTask(fileInfo.FullName, fileInfo.Name, Guid.NewGuid().ToString()); OpenTasks.Enqueue(set); _logger.Info("Created a job for " + fileInfo.Name, _threadId); if (OpenTasks.Count > 1000) { break; } } } }