from sqlalchemy.ext.asyncio import AsyncSession from app.crawler.dahuagov_spider import DahuagovSpider from app.crawler.gxgp_spider import GXGPSpider from app.services.crawl_service import CrawlService from app.services.notification_service import NotificationService async def get_db() -> AsyncSession: from app.main import async_session async with async_session() as session: yield session _crawl_service: CrawlService | None = None def get_crawl_service() -> CrawlService: global _crawl_service if _crawl_service is None: from app.main import async_session _crawl_service = CrawlService( db_session_factory=async_session, notification_service=NotificationService(), ) _crawl_service.register(GXGPSpider()) _crawl_service.register(DahuagovSpider()) return _crawl_service