import asyncio from apscheduler.schedulers.asyncio import AsyncIOScheduler from .agents import AGENT_REGISTRY scheduler = AsyncIOScheduler(timezone="Asia/Seoul") async def _check_idle_breaks(): for agent in AGENT_REGISTRY.values(): await agent.check_idle_break() async def _run_stock_schedule(): agent = AGENT_REGISTRY.get("stock") if agent: await agent.on_schedule() async def _run_realestate_schedule(): agent = AGENT_REGISTRY.get("realestate") if agent: await agent.on_schedule() async def _run_blog_schedule(): agent = AGENT_REGISTRY.get("blog") if agent: await agent.on_schedule() def init_scheduler(): scheduler.add_job(_run_stock_schedule, "cron", hour=7, minute=30, id="stock_news") scheduler.add_job(_run_realestate_schedule, "cron", hour=9, minute=15, id="realestate_report") scheduler.add_job(_run_blog_schedule, "cron", hour=10, minute=0, id="blog_pipeline") scheduler.add_job(_check_idle_breaks, "interval", seconds=60, id="idle_check") scheduler.start()