fix(tradein/cian): вернуть сбор вторички — sweep выбрасывал всё найденное (#2880)
All checks were successful
Deploy Trade-In / changes (push) Successful in 13s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 3m43s
Deploy Trade-In / build-backend (push) Successful in 39s
Deploy Trade-In / deploy (push) Successful in 1m57s
All checks were successful
Deploy Trade-In / changes (push) Successful in 13s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 3m43s
Deploy Trade-In / build-backend (push) Successful in 39s
Deploy Trade-In / deploy (push) Successful in 1m57s
This commit is contained in:
parent
0f0a3bbd79
commit
f3205d3ba1
2 changed files with 53 additions and 0 deletions
|
|
@ -0,0 +1,52 @@
|
|||
-- 263_scrape_schedules_wave2_cian_newbuilding_only_false.sql
|
||||
-- Дописывает "newbuilding_only": false в default_params 40 cian-строк wave 2 (262_).
|
||||
--
|
||||
-- ПОЧЕМУ. Прогон первого включённого города области показал, что sweep отрабатывает
|
||||
-- «успешно», но не сохраняет НИЧЕГО:
|
||||
--
|
||||
-- cian-sweep run_id=3884 anchor Новоуральск центр:
|
||||
-- SERP fetched=84 nb_kept=0 dropped_secondary=84 ins=0 upd=0
|
||||
-- cian-sweep run_id=3884 done: anchors=1/1 lots=84 (ins=0/upd=0) ... errors=0
|
||||
--
|
||||
-- 84 лота найдено и все 84 отброшено как вторичка, статус прогона при этом done.
|
||||
--
|
||||
-- Причина: scraper_kit.orchestration.scheduler (_job_cian_city_sweep) читает
|
||||
-- newbuilding_only=bool(params.get("newbuilding_only", True))
|
||||
-- то есть дефолт — True. Сид 179_ (wave 1) ключ проставляет явно (false), а 262_
|
||||
-- (wave 2) его потерял. Мера оценивает ВТОРИЧКУ — estimator отбирает аналоги с
|
||||
-- (listing_segment IS NULL OR listing_segment = 'vtorichka'), — поэтому режим
|
||||
-- «только новостройки» для этих строк бессмыслен: сбор идёт, данные выбрасываются.
|
||||
--
|
||||
-- ЗАТРАГИВАЕТ ТОЛЬКО cian. У avito/yandex такого параметра нет ни в 179_, ни в 262_
|
||||
-- (проверено сравнением default_params wave-1 и wave-2 на проде) — их не трогаем.
|
||||
--
|
||||
-- ПОБОЧНАЯ НАХОДКА: под гейт попадает 41 строка, а не 40. Лишняя —
|
||||
-- `cian_city_sweep_verkhnyaya_pyshma` из wave 1, ВКЛЮЧЁННАЯ и работающая в проде:
|
||||
-- 179_ проставил newbuilding_only не всем своим городам. Последствия на живых данных:
|
||||
--
|
||||
-- Верхняя Пышма (ключа нет): cian 184 активных → вторички 3, новостроек 181
|
||||
-- Первоуральск (ключ есть): cian 336 активных → вторички 308
|
||||
--
|
||||
-- То есть по Верхней Пышме Циан давал оценщику 3 пригодных объявления вместо ~300 —
|
||||
-- сбор шёл, статус зелёный, данные молча выбрасывались. Эта миграция чинит и её.
|
||||
|
||||
|
||||
--
|
||||
-- Идемпотентность: WHERE-гейт `NOT (default_params ? 'newbuilding_only')` — миграция
|
||||
-- дописывает ключ только там, где его нет. Повторный прогон — no-op, и она никогда
|
||||
-- не перезатрёт значение, выставленное позже вручную оператором.
|
||||
--
|
||||
-- ЗАВИСИМОСТИ: 262_ (сами строки), 052_scrape_schedules.sql (таблица).
|
||||
|
||||
BEGIN;
|
||||
|
||||
SET LOCAL lock_timeout = '5s';
|
||||
|
||||
UPDATE scrape_schedules
|
||||
SET default_params = default_params || '{"newbuilding_only": false}'::jsonb,
|
||||
updated_at = NOW()
|
||||
WHERE source LIKE 'cian\_city\_sweep\_%'
|
||||
AND default_params ? 'city'
|
||||
AND NOT (default_params ? 'newbuilding_only');
|
||||
|
||||
COMMIT;
|
||||
|
|
@ -251,3 +251,4 @@
|
|||
260_houses_drop_has_panorama.sql
|
||||
261_listings_search_mv_drop_placeholder_columns.sql
|
||||
262_scrape_schedules_seed_oblast_city_sweeps_wave2.sql
|
||||
263_scrape_schedules_wave2_cian_newbuilding_only_false.sql
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue