gendesign/tradein-mvp/backend
Light1YT 21888bd866 feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler (#560 #563)
Оба источника данных до этого требовали ручного запуска (HTTP-запрос в admin UI
и bash-скрипт на хосте соответственно). Теперь оба интегрированы в in-app scheduler
(тот же механизм что avito_city_sweep) — запускаются автоматически ночью.

#560 (cian_history_backfill):
- Window 02:00–05:00 UTC; pre-check verify_session() перед claim'ом слота —
  если куки истекли, run не создаётся, отправляется GlitchTip capture_message.
- Вызывает существующий backfill_cian_history() как есть; checkpoint через
  update_heartbeat() до и после вызова (для zombie-detection).

#563 (rosreestr_dkp_import):
- Window 04:00–06:00 UTC; sync функция в run_in_executor (DB-only, нет HTTP).
- Cursor-based пагинация (WHERE id > last_id ORDER BY id LIMIT batch_size),
  heartbeat = checkpoint каждый батч (~2000 строк по умолчанию).
- SAVEPOINT per row через begin_nested() — один сбойный row не откатывает батч.
- Идемпотентен: ON CONFLICT (dedup_hash) DO NOTHING; dedup_hash = md5('ros:dkp:'+id)
  соответствует Fix #549.
- Cleanup при старте: удаляет legacy rows address='Екатеринбург, реальная сделка'.
- Координаты NULL — геокодинг остаётся ручным follow-up.

Migration 072: seed rows scrape_schedules + foreign table gendesign_rosreestr_deals
(через gendesign_remote FDW server, настроен в 060).
2026-05-28 20:11:27 +05:00
..
app feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler (#560 #563) 2026-05-28 20:11:27 +05:00
data/sql feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler (#560 #563) 2026-05-28 20:11:27 +05:00
scripts feat(tradein): приоритизировать DaData house-backfill на дома с листингами (accuracy #2) 2026-05-28 15:17:01 +05:00
tests fix(tradein): implement listings_snapshots + offer_price_history writers (#567) (#624) 2026-05-28 13:49:52 +00:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat(tradein): persistent infra для backfill scripts (PR F) (#592) 2026-05-27 06:59:54 +00:00
pyproject.toml feat(rbac): role-based access control via X-Authenticated-User middleware (#585) 2026-05-26 06:18:40 +00:00