Difference between revisions of "Файл состояния ej-contests"
(Created page with "Навигация: Главная страница/Система ejudge/Использование/Файл состояния ej-contests") |
(...) |
||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Файл состояния ej-contests]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Файл состояния ej-contests]] | ||
+ | |||
+ | Поддерживается с версии [[Изменения в версии 3.10.1|3.10.1]]. | ||
+ | |||
+ | Компонент [[ej-contests]] экспортирует некоторые показатели работы в | ||
+ | файл <code>ej-contests-status</code>. Этот файл отображается в память | ||
+ | процесса ej-contests, поэтому обновления этих показателей становятся | ||
+ | доступными для чтения немедленно. | ||
+ | |||
+ | Файл размещается в следующем каталоге (в порядке приоритета): | ||
+ | * если при конфигурации системы была задана опция <code>--enable-contests-status-dir</code>, то файл размещается непосредственно в этом каталоге, например | ||
+ | <code>/var/lib/ejudge/status/ej-contests-status</code>. | ||
+ | * если при конфигурации системы была задана опция <code>--enable-local-dir</code>, то файл размещается в подкаталоге <code>status</code>, | ||
+ | например <code>/var/lib/ejudge/status/ej-contests-status</code>. | ||
+ | * иначе файл находится в каталоге CONTESTS_HOME_DIR/var, например | ||
+ | <code>/home/judges/var/ej-contests-status</code>. | ||
+ | |||
+ | Для чтения информации из файла <code>ej-contests-status</code> его можно | ||
+ | также отобразить в память в режиме "только чтение" и | ||
+ | обращаться непосредственно к полям структуры. | ||
+ | |||
+ | Файл перезаписывается с нуля при каждом рестарте 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; | ||
+ | }; | ||
+ | |||
+ | * Поле <code>size</code> содержит размер структуры в байтах (<code>sizeof(struct metrics_contest_data)</code>). В следующих версиях структуры ее размер может увеличиться за счет добавления новых полей, но существующие поля сохранятся. | ||
+ | * Поле <code>start_time</code> содержит время старта компонента ej-contests. | ||
+ | * Поле <code>update_time</code> содержит время последнего обновления значения в структуре. | ||
+ | * Поле <code>client_serial</code> содержит текущий номер внутреннего запроса, обрабатываемого ej-contests. При обращении к ej-contests по протоколу http(s) создаются два внутренних запроса, поэтому количество http(s) запросов к ej-contests с момента старта программы можно получить, поделив это значение на 2. | ||
+ | * Поле <code>loaded_contests</code> содержит число турниров, полная информация о которых загружена в память ej-contests. | ||
+ | * Поле <code>runs_submitted</code> содержит число посылок, присланных на проверку с момента запуска ej-contests. | ||
+ | * Поле <code>total_compile_time_ms</code> содержит суммарное время, потраченное на компиляцию всех посылок (включая перетестирования) в миллисекундах. | ||
+ | * Поле <code>total_testing_time_ms</code> содержит суммарное время, потраченное на тестирование всех посылок (включая перетестирования) в миллисекундах. |
Latest revision as of 21:11, 31 January 2023
Навигация: Главная страница/Система 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
содержит суммарное время, потраченное на тестирование всех посылок (включая перетестирования) в миллисекундах.