"""依赖注入""" from fastapi import Request from services.proxy_service import ProxyService from services.plugin_service import PluginService from services.settings_service import SettingsService from services.scheduler_service import SchedulerService from services.validator_service import ValidatorService from repositories.proxy_repo import ProxyRepository from core.tasks.queue import ValidationQueue from core.config import settings as app_settings def get_proxy_service() -> ProxyService: return ProxyService() def get_plugin_service() -> PluginService: return PluginService() def get_settings_service() -> SettingsService: return SettingsService() def get_scheduler_service(request: Request) -> SchedulerService: return request.app.state.scheduler_service def get_validation_queue(request: Request) -> ValidationQueue: return request.app.state.validation_queue def create_scheduler_service() -> SchedulerService: """在应用启动时创建 SchedulerService(非请求上下文)""" validator = ValidatorService( timeout=app_settings.validator_timeout, connect_timeout=app_settings.validator_connect_timeout, max_concurrency=app_settings.validator_max_concurrency, ) proxy_repo = ProxyRepository() queue = ValidationQueue( validator=validator, proxy_repo=proxy_repo, db_ctx=get_db, worker_count=app_settings.validator_max_concurrency, score_valid=app_settings.score_valid, score_invalid=app_settings.score_invalid, score_min=app_settings.score_min, score_max=app_settings.score_max, ) return SchedulerService(validation_queue=queue, proxy_repo=proxy_repo) # 避免循环导入 from core.db import get_db