private void Run() { AppDomain.MonitoringIsEnabled = true; Console.WriteLine("Listen {0}", address); var client = new Client(address, token); MainLoop(client); }
private void MainLoop(Client client) { while (true) { var newUnhandled = client.TryGetSubmissions(jobsToRequest).Result; Console.WriteLine("Received {0} submissions: [{1}]", newUnhandled.Count, string.Join(", ", newUnhandled.Select(s => s.Id))); if (newUnhandled.Any()) { var results = newUnhandled.Select(SandboxRunner.Run).ToList(); Console.WriteLine("Results: [{0}]", string.Join(", ", results.Select(r => r.Verdict))); client.SendResults(results); } Thread.Sleep(sleep); } // ReSharper disable once FunctionNeverReturns }
public void Run() { if (!Settings.MsBuildSettings.CompilerDirectory.Exists) { log.Error($"Не найдена папка с компиляторами: {Settings.MsBuildSettings.CompilerDirectory}"); Environment.Exit(1); } log.Info($"Путь до компиляторов: {Settings.MsBuildSettings.CompilerDirectory}"); AppDomain.MonitoringIsEnabled = true; log.Info($"Отправляю запросы на {address} для получения новых решений"); Client client; try { client = new Client(address, token); } catch (Exception e) { log.Error("Не могу создать HTTP-клиента для отправки запроса на ulearn", e); throw; } MainLoop(client); }
private void MainLoop(Client client) { while (!shutdownEvent.WaitOne(0)) { List<RunnerSubmission> newUnhandled; try { newUnhandled = client.TryGetSubmissions(jobsToRequest).Result; } catch (Exception e) { log.Error($"Не могу получить решения из ulearn. Следующая попытка через {sleep.TotalSeconds} секунд", e); Thread.Sleep(sleep); continue; } log.Info($"Получил {newUnhandled.Count} решение(й) со следующими ID: [{string.Join(", ", newUnhandled.Select(s => s.Id))}]"); if (newUnhandled.Any()) { var results = newUnhandled.Select(unhandled => SandboxRunner.Run(unhandled, Settings)).ToList(); log.Info($"Результаты проверки: [{string.Join(", ", results.Select(r => r.Verdict))}]"); try { client.SendResults(results); } catch (Exception e) { log.Error("Не могу отправить результаты проверки на ulearn", e); } } Thread.Sleep(sleep); } }