9f950a5f17
fix(scheduler): atomic _claim_run via advisory xact lock (Refs #750 )
...
Конкурентные scheduler-тики одного source (redeploy-overlap старого+нового
контейнера / 2 реплики) оба проходили has_running_run pre-check и запускали
ДВОЙНОЙ city-sweep → 2x rate к Avito/Cian → бан скрапера.
Path A: transaction-scoped pg_try_advisory_xact_lock(hashtext(source)) после
pre-check сериализует claim; non-blocking (lock занят → return None). Под локом
double-checked has_running_run (running мог появиться в окне pre-check→lock).
Лок авто-снимается на commit/rollback.
Path B (partial unique index WHERE status='running') отклонён: миграция могла
упасть на deploy если dirty-данные уже содержат >=2 running-строк на source
(ровно то, что баг и создаёт) — рискованно перед demo.
Tests: double-call→один run; lock unavailable→skip; running-under-lock→rollback+skip.
2026-05-30 19:01:37 +03:00
6762a532eb
feat(scrapers): wire N1.ru city sweep — pipeline + scheduler + admin endpoint ( #575 ) ( #745 )
...
Deploy Trade-In / deploy (push) Blocked by required conditions
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / test (push) Successful in 24s
Deploy Trade-In / build-backend (push) Has been cancelled
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-30 15:43:38 +00:00
a060651328
feat(tradein): daily asking→sold ratio refresh ( #648 S4) ( #663 )
Deploy Trade-In / build-backend (push) Successful in 45s
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 35s
2026-05-29 13:49:36 +00:00
e925a0ba6a
feat(tradein): per-source listing price history — schema + daily snapshot ( #570 ) ( #646 )
Deploy Trade-In / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 45s
Deploy Trade-In / deploy (push) Successful in 35s
2026-05-29 12:18:04 +00:00
7ec19b3536
feat(scheduler): dormant Yandex Realty city-sweep ( #561 ) ( #642 )
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 43s
Deploy Trade-In / deploy (push) Successful in 33s
2026-05-29 08:50:10 +00:00
b6cddcd9a8
fix(tradein): plain natural-key dedup_hash for rosreestr deals ( #576 ) ( #638 )
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Successful in 25s
Deploy Trade-In / build-backend (push) Successful in 45s
Deploy Trade-In / deploy (push) Successful in 37s
2026-05-29 06:56:35 +00:00
e72cf87e35
feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler ( #560 #563 ) ( #630 )
Deploy Trade-In / changes (push) Successful in 5s
Deploy / changes (push) Successful in 6s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy / build-frontend (push) Has been skipped
Deploy / build-backend (push) Successful in 29s
Deploy / build-worker (push) Successful in 30s
Deploy Trade-In / build-backend (push) Successful in 47s
Deploy Trade-In / deploy (push) Successful in 43s
Deploy / deploy (push) Successful in 58s
2026-05-28 15:31:24 +00:00
0202720096
feat(tradein): in-app scheduler — UI-managed schedule (replaces SSH crontab) ( #482 )
Deploy Trade-In / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-backend (push) Successful in 36s
Deploy Trade-In / deploy (push) Has been cancelled
2026-05-23 14:54:25 +00:00