"""Worker 服务配置 — 继承 SharedSettings,只追加 Worker 特有字段。 通用配置(DB/Redis/Celery/OSS/CosyVoice/Doubao 等)统一在 packages/config/base.py 的 SharedSettings 中定义,这里不重复。 """ from pydantic_settings import SettingsConfigDict from packages.config.base import SharedSettings, get_cached_settings class WorkerSettings(SharedSettings): """Worker 服务专用配置。 通用配置继承自 SharedSettings,这里只定义 Worker 独有字段。 Celery broker/backend 使用继承的 celery_broker_url / celery_result_backend; 历史上 Worker 使用 broker_url / result_backend 字段名,通过 property 别名兼容。 """ # ── Worker 特有 ──────────────────────────────────────────────────── worker_name: str = "xiaoxia-saas-worker" worker_concurrency: int = 4 worker_max_tasks_per_child: int = 1000 model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", case_sensitive=False, extra="ignore", ) # ── 向后兼容:Celery 字段名别名 ────────────────────────────────── @property def broker_url(self) -> str: return self.celery_broker_url @property def result_backend(self) -> str: return self.celery_result_backend def get_worker_settings() -> WorkerSettings: """获取 Worker 配置单例(统一入口)。""" return get_cached_settings(WorkerSettings)