Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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
        }
Esempio n. 3
0
		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
		}
Esempio n. 4
0
		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);
			}
		}