Оба места утверждали, что у Домклика один выделенный резидентный прокси и пула нет. Это перестало быть правдой ещё в #2800 (миграция 253 сняла резервацию узла), но текст остался — и именно на него опирался тикет #3189, поставленный под «калибровку» ограничения, которого не существует. Свип к тому же ходит через пул давно (serp.py:359), а бэкфилл подключён к нему в PR #3222. Заодно докстринг называл не тот ограничитель: свип кладёт не счётчик провалов lease, а break по первому DomClickBlockedError (#2854) — до ротации дело не доходит ни при каком счётчике, отсюда buckets_completed=0. Только комментарии, поведение не меняется. Миграция 175 уже применена, а _schema_migrations трекает по имени файла без checksum — правка текста её не перезапустит.
58 lines
3 KiB
PL/PgSQL
58 lines
3 KiB
PL/PgSQL
-- Drop legacy `use_rosreestr2coord` column from nspd_geo_jobs.
|
||
--
|
||
-- Контекст:
|
||
-- В первой итерации NSPD geo bulk-fetcher был выбор между нашим urllib-fetcher
|
||
-- (fetch_geoportal) и community-библиотекой rosreestr2coord. На практике
|
||
-- библиотека намного устойчивее к WAF — её авторы регулярно обновляют
|
||
-- headers/tricks. Поэтому отказались от urllib-ветки и теперь ВСЕГДА используем
|
||
-- rosreestr2coord. Колонка больше не несёт смысла.
|
||
--
|
||
-- Порядок: сначала пересоздаём v_scrape_runs_unified без зависимости от
|
||
-- колонки, потом DROP COLUMN.
|
||
|
||
BEGIN;
|
||
|
||
-- Чистим возможную мусорную view с опечаткой (создавалась предыдущей попыткой
|
||
-- миграции — без 's' в имени, ошибка).
|
||
DROP VIEW IF EXISTS v_scrape_run_unified;
|
||
|
||
-- Главная unified-view (см. 77_nspd_geo_jobs.sql) пересоздаётся без
|
||
-- use_rosreestr2coord в JSONB-секции nspd_geo.
|
||
CREATE OR REPLACE VIEW v_scrape_runs_unified AS
|
||
SELECT 'kn' AS scraper_type, run_id, started_at, finished_at, heartbeat_at,
|
||
status, error, NULL::text AS triggered_by,
|
||
region_codes::text AS scope, requests_count,
|
||
objects_count AS items_ok, NULL::integer AS items_failed,
|
||
flats_count AS sub_items_ok,
|
||
progress_obj_index AS progress_idx, total_obj_count AS progress_total,
|
||
jsonb_build_object('developers', developer_ids, 'snapshot_date', snapshot_date,
|
||
'resumed_from', resumed_from_run_id, 'params', params) AS extra
|
||
FROM kn_scrape_runs
|
||
UNION ALL
|
||
SELECT 'nspd', run_id, started_at, finished_at, heartbeat_at, status, error,
|
||
triggered_by, region_code::text, requests_count,
|
||
quarters_ok, quarters_failed, buildings_ok,
|
||
NULL, pending_count,
|
||
jsonb_build_object('waf_429_count', waf_429_count)
|
||
FROM nspd_scrape_runs
|
||
UNION ALL
|
||
SELECT 'objective', run_id, started_at, finished_at, heartbeat_at, status, error,
|
||
triggered_by, group_name, requests_count,
|
||
reports_ok, reports_failed, rows_lots,
|
||
NULL, NULL,
|
||
jsonb_build_object('rows_corpus_room', rows_corpus_room, 'rows_history', rows_history)
|
||
FROM objective_scrape_runs
|
||
UNION ALL
|
||
SELECT 'nspd_geo', job_id, started_at, finished_at, heartbeat_at, status, error,
|
||
triggered_by, COALESCE(name, job_kind),
|
||
requests_count, targets_done, targets_failed, targets_skipped,
|
||
targets_done, targets_total,
|
||
jsonb_build_object('job_kind', job_kind, 'source_kind', source_kind,
|
||
'rate_ms', rate_ms,
|
||
'waf_blocked_count', waf_blocked_count,
|
||
'source_params', source_params)
|
||
FROM nspd_geo_jobs;
|
||
|
||
ALTER TABLE nspd_geo_jobs DROP COLUMN IF EXISTS use_rosreestr2coord;
|
||
|
||
COMMIT;
|