7cd8cfde0a
A-3 migrations 319-323 (news_sources 9컬럼 + source_channel 'crawl' + process_stage 'fulltext' + source_health) A-1 조건부 GET(ETag/Last-Modified 그대로 재전송)+콘텐츠 해시 변경감지, A-4 politeness 코어(per-domain 직렬+robots+정직UA), A-2+A-7 fulltext_worker(4-tier 재사용·NAS crawl_raw gzip 보존·격하 경로·03:40 reconcile 안전망), A-5 circuit breaker(3/10 임계, enabled 미터치), A-6 포털 전재 2차 dedup(제목+3일, 12자 게이트). 기존 소스 fulltext_policy='none' 기본 = 무회귀. plan crawl-24x7-1, 예외 박제 crawl-24x7-exec1-20260610.md
20 lines
1.4 KiB
SQL
20 lines
1.4 KiB
SQL
-- A-3 (plan crawl-24x7-1): 소스 레지스트리 증축 — additive only.
|
|
-- fetch_method : rss / rss+page / sitemap+page / page / api / signal-only
|
|
-- fulltext_policy : none(현행 유지) / page(기사 페이지 fetch 후 4-tier 승격) / feed-full(피드 본문이 전문)
|
|
-- auth_profile : NULL=공개, 값=구독 세션 키 (B-3 Playwright 어댑터용 슬롯)
|
|
-- poll_interval_minutes : 소스별 차등 폴링 (NULL=전역 6h 사이클)
|
|
-- etag / last_modified : 조건부 GET 워터마크 — 받은 그대로 저장·재전송 (상태는 전부 DB, APScheduler in-process)
|
|
-- feed_content_hash : CDN ETag 회전 대비 콘텐츠 해시 변경감지 병행
|
|
-- selector_override : 추출 실패 잦은 소스의 site-specific CSS selector (JSONB)
|
|
-- parser_quirk : rdf / table-strip / gn-redirect 등 파서 특이 케이스
|
|
ALTER TABLE news_sources
|
|
ADD COLUMN IF NOT EXISTS fetch_method VARCHAR(20) NOT NULL DEFAULT 'rss',
|
|
ADD COLUMN IF NOT EXISTS fulltext_policy VARCHAR(20) NOT NULL DEFAULT 'none',
|
|
ADD COLUMN IF NOT EXISTS auth_profile VARCHAR(50),
|
|
ADD COLUMN IF NOT EXISTS poll_interval_minutes INTEGER,
|
|
ADD COLUMN IF NOT EXISTS etag TEXT,
|
|
ADD COLUMN IF NOT EXISTS last_modified TEXT,
|
|
ADD COLUMN IF NOT EXISTS feed_content_hash VARCHAR(64),
|
|
ADD COLUMN IF NOT EXISTS selector_override JSONB,
|
|
ADD COLUMN IF NOT EXISTS parser_quirk VARCHAR(30);
|