Backend Акылдаш
Версия: 0.1.2
Первая backend-область проекта — загрузка правовых документов из официального
Open Data API ЦБД Минюста Кыргызской Республики. Код расположен в
ingestion/minjust_cbd.py: его можно запускать как CLI сейчас и импортировать
из будущего планировщика backend без запуска отдельного процесса.
Пробная загрузка
Из корня репозитория:
python3 backend/ingestion/minjust_cbd.py --limit 10
В интерактивном терминале отображаются процент, количество документов, ошибки, скорость и примерное оставшееся время.
Полная загрузка выполняется без --limit. По умолчанию архив сохраняется в
data/minjust-cbd, который исключён из Git. Повторный запуск пропускает уже
загруженные документы; --refresh принудительно проверяет их заново.
Если временный идентификатор списка API истечёт во время многодневной загрузки,
скрипт пересоздаст список на текущей странице и продолжит автоматически.
В версии 0.1.0 обновление существующих документов выполняется полной проверкой
через --refresh. Инкрементальную проверку по lastmod из sitemap следует
добавить вместе с backend-планировщиком, когда будет определена частота запуска.
Защита API
Запросы выполняются последовательно, по умолчанию не чаще одного в секунду.
Timeout одного ответа — 60 секунд, число попыток — 5, задержка между повторами
растёт экспоненциально. При HTTP 429 учитывается заголовок Retry-After.
Лимит действует на один процесс, поэтому одновременно следует запускать только
один экземпляр загрузчика.
Более осторожный режим:
python3 backend/ingestion/minjust_cbd.py --requests-per-second 0.5
Вызов из будущего backend
from ingestion.minjust_cbd import sync_archive
result = sync_archive(output_path)
Планировщик, очередь задач и PostgreSQL пока не добавлены: модуль не зависит от выбора будущего backend-фреймворка.
Проверка
PYTHONPATH=backend python3 -m unittest backend/test_minjust_cbd.py -v
Акылдаш · Backend v0.1.2 · Frontend — не создан