From 713db46134793dc99925f797d60ce185d8210a8c Mon Sep 17 00:00:00 2001 From: hyungi Date: Sat, 20 Jun 2026 00:04:57 +0000 Subject: [PATCH] =?UTF-8?q?fix(news):=20news=5Fcollector=EB=A5=BC=20?= =?UTF-8?q?=EB=B2=BD=EC=8B=9C=EA=B3=84=20cron(0,6,12,18=20KST)=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EA=B3=A0=EC=A0=95=20=E2=80=94=20=EB=AA=A8=EB=8B=9D?= =?UTF-8?q?=EB=B8=8C=EB=A6=AC=ED=95=91=20=EC=9C=88=EB=8F=84=EC=9A=B0=20?= =?UTF-8?q?=EC=A0=95=EB=A0=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit interval hours=6 는 컨테이너 시작시각 앵커라 재시작마다 드리프트 → 새벽 수집이 브리핑 윈도우(00:00~05:00 KST) 밖(05시대)으로 밀려 6/19·6/20 briefing status=empty(기사 0). cron 고정으로 00:00 수집 보장 + 05:10 브리핑까지 ~5h 가공 lead time 확보. Co-Authored-By: Claude Opus 4.8 (1M context) --- app/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/main.py b/app/main.py index 99320d0..820ad97 100644 --- a/app/main.py +++ b/app/main.py @@ -144,7 +144,7 @@ async def lifespan(app: FastAPI): scheduler.add_job(study_reminder_run, CronTrigger(hour="9,13,19", timezone=KST), id="study_reminder") # 이드 W3-2: 공부중 토픽 약점 derived 스냅샷 (nightly 04:30 KST, LLM 0). study_diagnosis 표면 source. scheduler.add_job(study_weakness_run, CronTrigger(hour=4, minute=30, timezone=KST), id="study_weakness") - scheduler.add_job(news_collector_run, "interval", hours=6, id="news_collector") + scheduler.add_job(news_collector_run, CronTrigger(hour="0,6,12,18", timezone=KST), id="news_collector") # crawl-24x7 A-2 안전망: fulltext 영구 실패(3회 소진) 문서를 RSS 요약 기준으로 # 후속 enqueue (silent skip 누적 방지). 03:40 = dedup_reconcile(03:30) 직후 비충돌 슬롯. scheduler.add_job(fulltext_reconcile_run, CronTrigger(hour=3, minute=40, timezone=KST), id="fulltext_reconcile")