Файл состояния ej-contests
Навигация: Главная страница/Система ejudge/Использование/Файл состояния ej-contests
Поддерживается с версии 3.10.1.
Компонент ej-contests экспортирует некоторые показатели работы в
файл ej-contests-status
. Этот файл отображается в память
процесса ej-contests, поэтому обновления этих показателей становятся
доступными для чтения немедленно.
Файл размещается в следующем каталоге (в порядке приоритета):
- если при конфигурации системы была задана опция
--enable-contests-status-dir
, то файл размещается непосредственно в этом каталоге, например
/var/lib/ejudge/status/ej-contests-status
.
- если при конфигурации системы была задана опция
--enable-local-dir
, то файл размещается в подкаталогеstatus
,
например /var/lib/ejudge/status/ej-contests-status
.
- иначе файл находится в каталоге CONTESTS_HOME_DIR/var, например
/home/judges/var/ej-contests-status
.
Для чтения информации из файла ej-contests-status
его можно
также отобразить в память в режиме "только чтение" и
обращаться непосредственно к полям структуры.
Файл перезаписывается с нуля при каждом рестарте ej-contests.
Файл имеет следующую структуру:
struct metrics_contest_data { uint32_t size; unsigned char pad0[12]; struct timeval start_time; struct timeval update_time; long long client_serial; int loaded_contests; int runs_submitted; long long total_compile_time_ms; long long total_testing_time_ms; };
- Поле
size
содержит размер структуры в байтах (sizeof(struct metrics_contest_data)
). В следующих версиях структуры ее размер может увеличиться за счет добавления новых полей, но существующие поля сохранятся. - Поле
start_time
содержит время старта компонента ej-contests. - Поле
update_time
содержит время последнего обновления значения в структуре. - Поле
client_serial
содержит текущий номер внутреннего запроса, обрабатываемого ej-contests. При обращении к ej-contests по протоколу http(s) создаются два внутренних запроса, поэтому количество http(s) запросов к ej-contests с момента старта программы можно получить, поделив это значение на 2. - Поле
loaded_contests
содержит число турниров, полная информация о которых загружена в память ej-contests. - Поле
runs_submitted
содержит число посылок, присланных на проверку с момента запуска ej-contests. - Поле
total_compile_time_ms
содержит суммарное время, потраченное на компиляцию всех посылок (включая перетестирования) в миллисекундах. - Поле
total_testing_time_ms
содержит суммарное время, потраченное на тестирование всех посылок (включая перетестирования) в миллисекундах.