Dokumentacja AlgoJudge0.1
Dla prowadzącego

Runnery

Zatwierdzenie, połączenie i tagi decydujące, która maszyna dostaje którą pracę.

Runner to maszyna oceniająca zgłoszenia. Rejestruje się sam w Serverze, przedstawiając własny klucz, i nie ocenia niczego, dopóki nie zostanie zatwierdzony.

Zatwierdzenie i połączenie to dwa różne fakty

Lista pokazuje je osobno, a zwinięcie ich w jeden „status” ukryłoby oba:

  • zatwierdzony, ale offline to awaria;
  • połączony, ale niezatwierdzony nie ocenia niczego.

Runner jest w jednym z trzech stanów: czeka na zatwierdzenie, zatwierdzony albo odwołany. Zatwierdź wpuszcza go do pracy, Odbierz unieważnia klucz — wtedy Runner musi zarejestrować się od nowa. Odwołanego można zapomnieć całkiem.

Co pokazuje ekran i kto to powiedział

Wszystko poza tagami jest własnym raportem Runnera: produkt i wersja, typy zadań, które przyjmuje, adres, odcisk i klucz publiczny, maszyna, liczba wykonanych zadań i kiedy był ostatnio widziany. Ekran wyświetla raport i nigdy nie uzupełnia w nim luk — Runner, który nigdy się nie połączył, nie ma maszyny, i uczciwiej jest tak właśnie napisać.

Odcisk odczytujesz na głos przy zatwierdzaniu; samym kluczem diagnozuje się niezgodność.

Pliki tekstowe, które Runner o sobie wgrywa, pojawiają się jako zakładki obok Ogólne i są pobierane dopiero po otwarciu.

Tagi i co naprawdę robią

Runner dostaje pracę, gdy obie listy tagów mają co najmniej jeden wspólny

Nie wszystkiektórykolwiek. Gdy dodasz tag do aktywności, poszerzasz zbiór Runnerów, które mogą wziąć jej pracę.

Pusta lista, po każdej ze stron, jest czytana jako default. Na tej jednej regule opiera się cała wyłączność:

Tagi RunneraTagi pracy
lab-alab-aoceniane
lab-a, gpulab-aoceniane
gpulab-a, gpuoceniane — jeden wspólny tag wystarczy
lab-apustenie oceniane
pustelab-anie oceniane
pustepusteoceniane — zachowanie sprzed całej tej mechaniki

Czwarty wiersz przeczytaj dwa razy. Otagowanie Runnera wyjmuje go z puli ogólnej równie pewnie, jak wstawia do zarezerwowanej. Tak ma być: skoro rezerwujesz maszyny w pracowni, muszą stać się niedostępne dla wszystkiego innego — inaczej zarezerwowane maszyny nadal wciągałaby ogólna kolejka, i to w najgorszym momencie.

default to zwykły tekst, który każdy może wpisać, i znaczy dokładnie to samo, co puste pole. Dzięki temu wyciągniesz jedną rundę z kursu przypiętego do pracowni, a maszyna może służyć naraz puli ogólnej i zarezerwowanej.

Tagi są przycinane, sprowadzane do małych liter i odduplikowane. Bez małych liter Lab-A na maszynie i lab-a w aktywności byłyby dwiema pulami, które czyta się jak jedną, a objawiłoby się to kolejką, która nigdy się nie opróżnia, i żaden ekran nie powiedziałby dlaczego.

Skąd biorą się tagi zadania

Z serii, jeśli ustawia własne, a w przeciwnym razie z aktywności. Na serii przełącznik oceniana przez własne Runnery jest tym, co odróżnia dziedziczenie od nadpisania, bo puste nadpisanie i odziedziczona lista wyglądałyby identycznie. Runda, która chce ogólnych maszyn, gdy jej kurs jest przypięty, wpisuje default.

Tag zwykle należy do rundy, a nie do kursu: jeśli przypniesz cały kurs, do pracowni pojadą także jego prace domowe.

Oba ekrany liczą to za ciebie — Pasujące Runnery: N — a przy zerze formularz aktywności mówi to wprost: żaden zatwierdzony Runner nie ma tych tagów. Żaden z nich nie odmawia zapisu, bo tagi wpisuje się często, zanim maszyny zostaną zatwierdzone — ale zero zostawione tak, jak jest, znaczy, że zgłoszenia są przyjmowane, kolejkowane i nigdy nieoceniane.

Czyj jest tag

Runner może zaproponować swoje pule we własnej konfiguracji, a Server bierze to przy pierwszej rejestracji i nigdy później. Od tej chwili właścicielem tagów jest ten ekran — i dlatego restart nie zmienia tego, jaką pracę maszyna dostaje.

Dwa filtry, których nie ustawiasz

Obok tagów zadanie trafia do Runnera tylko wtedy, gdy ten przyjmuje jego typ zadania i gdy obie strony zgadzają się co do tego, czy praca jest oceniana zewnętrznie. Jedno i drugie bierze się z rejestracji Runnera i opisuje, co maszyna umie, a nie decyzję, którą ktoś podejmuje we wtorek.

Uprawnienia

Ten obszar otwiera runner:read, zatwierdzasz z runner:approve, odwołujesz z runner:revoke, a tagi zmieniasz z runner:update. Żadnego z nich nie ma w dostarczanym szablonie manager — dotyczą całej instalacji, tak jak same maszyny. Instalacja i uruchomienie Runnera to Instalacja i utrzymanie.

Na tej stronie