Files
wehub-resource-sync 41b710f9c7
CI / Frontend checks (push) Failing after 0s
CI / Backend tests (push) Failing after 1s
I18n Documentation Sync / sync-docs (push) Failing after 0s
chore: import upstream snapshot with attribution
2026-07-13 12:28:40 +08:00

52 lines
1.6 KiB
Python

"""
统一的Celery应用配置
根据环境变量选择桌面版或服务端配置
"""
import os
IS_DESKTOP = os.getenv("AUTOCLIP_DESKTOP_MODE") == "1"
if IS_DESKTOP:
# 仅桌面模式才使用文件系统 broker / sqlite backend 的轻量 Celery
from .desktop_celery import celery_app # noqa: F401
else:
# 服务端/开发常规模式:Redis 或你配置的 broker/backend
from celery import Celery
broker_url = os.getenv("CELERY_BROKER_URL", "redis://localhost:6379/0")
backend_url = os.getenv("CELERY_RESULT_BACKEND", "redis://localhost:6379/1")
celery_app = Celery(__name__, broker=broker_url, backend=backend_url)
celery_app.conf.update(
task_serializer='json',
accept_content=['json'],
result_serializer='json',
timezone='Asia/Shanghai',
enable_utc=True,
task_always_eager=False, # 服务端模式异步执行
task_eager_propagates=True,
result_expires=3600,
task_ignore_result=False,
task_routes={
'backend.tasks.processing.*': {'queue': 'processing'},
'backend.tasks.video.*': {'queue': 'video'},
'backend.tasks.notification.*': {'queue': 'notification'},
'backend.tasks.maintenance.*': {'queue': 'maintenance'},
'backend.tasks.upload.*': {'queue': 'upload'},
},
)
# 自动发现任务
celery_app.autodiscover_tasks([
'backend.tasks.processing',
'backend.tasks.video',
'backend.tasks.notification',
'backend.tasks.maintenance',
'backend.tasks.upload'
])
if __name__ == '__main__':
celery_app.start()