64 lines
5.6 KiB
Plaintext
64 lines
5.6 KiB
Plaintext
BUILD192 · 2026.10.21.3
|
||
|
||
ОБНОВЛЕНИЕ СУЩЕСТВУЮЩЕЙ VM
|
||
hockey_BUILD192_update.zip — накопительный пакет BUILD190–192.
|
||
Подходит для исходной BUILD189 и уже установленной BUILD190/191.
|
||
Рабочие .env, настройки, пароли, базы, данные КХЛ, XML и Agent.exe
|
||
в пакет обновления не включены. Полный архив содержит снимок файлов присланного проекта;
|
||
для обновления используйте пакет изменённых файлов.
|
||
|
||
1. Остановите приложение, сохраните резервную копию проекта и PostgreSQL.
|
||
2. Распакуйте hockey_BUILD192_update.zip в корень проекта с заменой файлов.
|
||
3. Из Python/venv приложения выполните:
|
||
python -m pip install -r requirements.txt
|
||
4. При необходимости посмотрите и примените прежний план очистки:
|
||
python cleanup_project.py --dry-run
|
||
python cleanup_project.py --apply
|
||
5. Перезапустите существующую службу. Ручной запуск:
|
||
python -m uvicorn app:app --host 0.0.0.0 --port 8000 --workers 1
|
||
Windows: START.bat. Для эфира один процесс без --reload.
|
||
6. Проверьте /api/health: build 2026.10.21.3. На выбранных матче и Agent
|
||
проверьте счёт, игрока, удаление, численный состав и паузу/старт таймера.
|
||
|
||
BUILD192: MAPPING
|
||
Убрана остановка после трёх ошибок: здоровый остаток Mapping отправляется
|
||
до повторов проблемных целей. Вернулись пакеты до шести независимых команд
|
||
с индивидуальной проверкой результатов. Записи одного поля разделены ACK;
|
||
таймеры и эфирные действия не попадают в параллельный пакет Mapping.
|
||
Подтверждённый кэш, изоляция матчей и защита поколения сохранены.
|
||
Ошибка HTTP-команды не отключает vMix целиком; независимая проверка связи,
|
||
разрыв WebSocket или смена назначения по-прежнему останавливают отправку.
|
||
Существующий Agent.exe поддерживает этот протокол и не заменяется.
|
||
|
||
BUILD192: ИМПОРТЫ И КОМАНДЫ ОПЕРАТОРА
|
||
Импорт входит в общий пул БД по одной операции; остальные запросы импорта
|
||
ожидают асинхронно. Сетевые загрузки остаются параллельными. При стандартном
|
||
пуле 8 workers импорт занимает не больше одного, оставляя ресурс оператору.
|
||
Покрыты 19 участков общей блокировки и дополнительные массовые импорты.
|
||
ONLINE-расписание больше не ожидает холодную подготовку таблицы в HTTP-цикле.
|
||
Разбор больших XML выполняется вместе с импортом в worker.
|
||
Отмена ожидающего запроса предотвращает запуск. Начатая транзакция доходит
|
||
до commit/rollback перед освобождением очереди.
|
||
|
||
ЖУРНАЛ ИМПОРТА
|
||
В «Журнале» выберите раздел import. import.queue_wait показывает ожидание
|
||
от 250 мс; import.finished — завершение с долгим ожиданием/работой от 1 с;
|
||
import.failed — ошибку. В деталях название операции и время выполнения.
|
||
Прежние фильтры дат, матчей, участников, Agent и выгрузка TXT/JSONL сохранены.
|
||
С телефона: адрес сервера + /logs, вход администратора. Хранятся текущий
|
||
и предыдущий календарные месяцы по Москве, старые журналы удаляются.
|
||
|
||
ПРОВЕРКИ
|
||
Полный набор: 641 passed, 0 failed, без skip/xfail.
|
||
Проверено насыщение импорта при 2/4/8 workers, реальные записи таймера и
|
||
доставка команды ДО освобождения импорта, отмена/rollback, холодное расписание.
|
||
Отдельный сценарий: 13 импортов, три матча, шесть Agents, изменения контекста,
|
||
Mapping, пауза таймера и зрители. Код CLI включён в tests/.
|
||
Сценарий нескольких матчей повторён с поддержкой пакетных ACK в поддельном Agent.
|
||
Отчёт и ограничения: docs/validation.json.
|
||
|
||
Проверки локальные: SQLite/ASGI/поддельные Agent. Рабочие PostgreSQL, Stat2TV,
|
||
Windows Agent.exe и настоящий vMix требуют отдельной проверки на вашей VM.
|
||
Существующие инструкции: README.md, docs/OPERATOR.md, ADMIN.md,
|
||
ARCHITECTURE.md и CHANGELOG.md. История документов: docs/history.zip.
|