from celery import Celery from worker_app.core.config import get_settings settings = get_settings() celery_app = Celery(settings.worker_name) celery_app.conf.broker_url = settings.broker_url celery_app.conf.result_backend = settings.result_backend celery_app.conf.broker_connection_retry_on_startup = True celery_app.conf.imports = ( "worker_app.tasks.health", "worker_app.tasks.ingest", "worker_app.tasks.classification", "worker_app.tasks.generation", "worker_app.tasks.voice_extraction", "worker_app.tasks.voice_clone", "worker_app.tasks.tts_synthesis", "worker_app.tasks.batch_download", "worker_app.tasks._startup", "apps.worker.video_processing.dedup", "worker_app.tasks.cleanup", ) # Celery Beat 定时任务调度 celery_app.conf.beat_schedule = { "cleanup-stale-pending-tasks": { "task": "worker.cleanup_stale_pending_tasks", "schedule": 600.0, # 每 10 分钟(秒) "options": {"expires": 300}, # 5 分钟过期,避免堆积 }, }