diff --git a/app/main.py b/app/main.py index e21dfd7..c0cf4b3 100644 --- a/app/main.py +++ b/app/main.py @@ -38,6 +38,9 @@ async def lifespan(app: FastAPI): from apscheduler.schedulers.asyncio import AsyncIOScheduler from apscheduler.triggers.cron import CronTrigger + from zoneinfo import ZoneInfo + + KST = ZoneInfo("Asia/Seoul") from services.search.query_analyzer import prewarm_analyzer from workers.briefing_worker import run as morning_briefing_run from workers.daily_digest import run as daily_digest_run @@ -90,12 +93,12 @@ async def lifespan(app: FastAPI): # safety > law > manual 우선순위로 25건씩. 6720 레거시 → 야간당 ~150건 → 약 45일 소화. scheduler.add_job(tier_backfill_run, "interval", minutes=30, id="tier_backfill") # 일일 스케줄 (KST) - scheduler.add_job(law_monitor_run, CronTrigger(hour=7), id="law_monitor") - scheduler.add_job(mailplus_run, CronTrigger(hour=7), id="mailplus_morning") - scheduler.add_job(mailplus_run, CronTrigger(hour=18), id="mailplus_evening") - scheduler.add_job(daily_digest_run, CronTrigger(hour=20), id="daily_digest") - scheduler.add_job(global_digest_run, CronTrigger(hour=4, minute=0), id="global_digest") - scheduler.add_job(morning_briefing_run, CronTrigger(hour=5, minute=10), id="morning_briefing") + scheduler.add_job(law_monitor_run, CronTrigger(hour=7, timezone=KST), id="law_monitor") + scheduler.add_job(mailplus_run, CronTrigger(hour=7, timezone=KST), id="mailplus_morning") + scheduler.add_job(mailplus_run, CronTrigger(hour=18, timezone=KST), id="mailplus_evening") + scheduler.add_job(daily_digest_run, CronTrigger(hour=20, timezone=KST), id="daily_digest") + scheduler.add_job(global_digest_run, CronTrigger(hour=4, minute=0, timezone=KST), id="global_digest") + scheduler.add_job(morning_briefing_run, CronTrigger(hour=5, minute=10, timezone=KST), id="morning_briefing") scheduler.add_job(news_collector_run, "interval", hours=6, id="news_collector") scheduler.start()