diff --git a/infra/docker/entrypoint-worker.sh b/infra/docker/entrypoint-worker.sh index 919bfc933..f2e208d96 100755 --- a/infra/docker/entrypoint-worker.sh +++ b/infra/docker/entrypoint-worker.sh @@ -6,8 +6,10 @@ set -e CONCURRENCY="${WORKER_CONCURRENCY:-2}" -# 启用 -B 标志嵌入 celery beat(单 worker 实例,足够安全) -# beat 负责定期触发 pending 超时清理等定时任务 +# ⚠️ 部署约束:此 Worker 必须且只能运行单实例(replicas=1) +# -B 标志嵌入 celery beat,beat 负责定期触发 pending 超时清理等定时任务 +# 多实例部署会导致每个 Worker 独立运行 Beat,造成定时任务重复执行 +# 若需横向扩展 Worker,必须将 Beat 拆分为独立服务(celery beat -A worker_app.celery_app) exec celery \ -A worker_app.celery_app \ worker \ diff --git a/packages/adapters/sqlalchemy_impl/generation_task_repository.py b/packages/adapters/sqlalchemy_impl/generation_task_repository.py index b9d318672..75f394edc 100755 --- a/packages/adapters/sqlalchemy_impl/generation_task_repository.py +++ b/packages/adapters/sqlalchemy_impl/generation_task_repository.py @@ -344,7 +344,7 @@ class SQLAlchemyGenerationTaskRepository: GenerationTaskModel.error_info: error_info, GenerationTaskModel.completed_at: datetime.now(timezone.utc), }, - synchronize_session="fetch", + synchronize_session=False, ) ) self.session.commit()