diff --git a/.env.example b/.env.example index aa2b44259..aa6063c5c 100755 --- a/.env.example +++ b/.env.example @@ -79,14 +79,33 @@ CELERY_BROKER_URL=redis://localhost:6379/0 CELERY_RESULT_BACKEND=redis://localhost:6379/1 -# ==================== Worker 配置 ==================== +# ==================== Worker 配置(#2073 队列分流) ==================== +# +# 容器内跑三个独立进程:beat(只发定时任务)+ generation worker(实时高优) +# + transcode worker(后台批量/清理)。三个进程的并发与开关独立配置。 # Worker 进程名称 WORKER_NAME=xiaoxia-saas-worker -# Worker 并发数(同时执行的任务数) +# 总并发参考(兼容旧变量): +# - 若 GENERATION_CONCURRENCY 与 TRANSCODE_CONCURRENCY 都未显式设置, +# entrypoint 会按此总数对半分配(gen=ceil(total/2), trans=剩余,各至少 1); +# - 任一个 *_CONCURRENCY 显式设置后,按显式值生效,忽略此变量对应部分。 WORKER_CONCURRENCY=4 +# Generation worker 并发数(用户实时任务:视频生成/TTS/音色克隆/lipsync/数字人) +# 实时链路对延迟敏感,建议 2C 以上机器设为 2;高负载场景可加到 4。 +GENERATION_CONCURRENCY=2 + +# Transcode worker 并发数(后台批量:素材入库转码/AI 分类打标/质量评分/查重/批量下载) +# 后台任务可排队,独立伸缩;素材入库量大时可加到 4。 +TRANSCODE_CONCURRENCY=2 + +# 是否在本容器启动 celery beat 进程(默认 1)。 +# 默认 beat 与 worker 同容器部署;若要独立 beat 容器部署,worker 容器设为 0、 +# beat 容器单独跑 `celery -A worker_app.celery_app beat` 并设 BEAT_ENABLED=1。 +BEAT_ENABLED=1 + # 每个子进程最多处理多少任务后重启(防止内存泄漏) WORKER_MAX_TASKS_PER_CHILD=1000