From ce65e9439b7d41d6c95cd761ec6b4dfeafccc933 Mon Sep 17 00:00:00 2001 From: CI Bot Date: Tue, 14 Jul 2026 09:17:39 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8Dblack/isort=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/api/app/schemas/generation_task.py | 4 +++- apps/worker/worker_app/tasks/generation.py | 14 ++++++++++---- .../generation_task_repository.py | 16 ++++------------ packages/application/generation_tasks.py | 2 ++ 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/apps/api/app/schemas/generation_task.py b/apps/api/app/schemas/generation_task.py index 4f7a812a4..10543d0f1 100755 --- a/apps/api/app/schemas/generation_task.py +++ b/apps/api/app/schemas/generation_task.py @@ -39,7 +39,9 @@ class CreateGenerationTaskRequest(BaseModel): description="是否开启失败自动重试,默认关闭", ) auto_retry_max: int = Field( - default=0, ge=0, le=5, + default=0, + ge=0, + le=5, description="最大自动重试次数,0表示不自动重试,最大5次", ) diff --git a/apps/worker/worker_app/tasks/generation.py b/apps/worker/worker_app/tasks/generation.py index 7b59b91dd..2ea48cbf8 100755 --- a/apps/worker/worker_app/tasks/generation.py +++ b/apps/worker/worker_app/tasks/generation.py @@ -1197,10 +1197,12 @@ def generate_video(self, task_id: str) -> dict: if current_retry < _task.auto_retry_max: logger.info( "[task_id=%s] 触发自动重试: 当前重试次数=%d, 最大重试次数=%d", - task_id, current_retry, _task.auto_retry_max, + task_id, + current_retry, + _task.auto_retry_max, ) # 计算退避延迟(指数退避,基础5s,最大60s) - backoff_seconds = min(5 * (2 ** current_retry), 60) + backoff_seconds = min(5 * (2**current_retry), 60) # 原地重试 _task.mark_pending_from_failed() _r.update(_task) @@ -1212,14 +1214,18 @@ def generate_video(self, task_id: str) -> dict: ) logger.info( "[task_id=%s] 自动重试已入队: 延迟=%ds, 第%d次重试", - task_id, backoff_seconds, current_retry + 1, + task_id, + backoff_seconds, + current_retry + 1, ) finally: _s.close() except Exception as retry_err: logger.warning( "[task_id=%s] 自动重试逻辑执行失败: %s", - task_id, retry_err, exc_info=True, + task_id, + retry_err, + exc_info=True, ) return { diff --git a/packages/adapters/sqlalchemy_impl/generation_task_repository.py b/packages/adapters/sqlalchemy_impl/generation_task_repository.py index 53c1fa31c..6d26a2d54 100755 --- a/packages/adapters/sqlalchemy_impl/generation_task_repository.py +++ b/packages/adapters/sqlalchemy_impl/generation_task_repository.py @@ -144,9 +144,7 @@ class SQLAlchemyGenerationTaskRepository: offset: int = 0, ) -> list[GenerationTask]: """按用户+状态筛选任务列表。""" - query = self.session.query(GenerationTaskModel).filter( - GenerationTaskModel.created_by_user_id == user_id - ) + query = self.session.query(GenerationTaskModel).filter(GenerationTaskModel.created_by_user_id == user_id) if status: query = query.filter(GenerationTaskModel.status == status) query = query.order_by(GenerationTaskModel.created_at.desc()) @@ -163,9 +161,7 @@ class SQLAlchemyGenerationTaskRepository: status: str | None = None, ) -> int: """按用户+状态筛选计数。""" - query = self.session.query(GenerationTaskModel).filter( - GenerationTaskModel.created_by_user_id == user_id - ) + query = self.session.query(GenerationTaskModel).filter(GenerationTaskModel.created_by_user_id == user_id) if status: query = query.filter(GenerationTaskModel.status == status) return query.count() @@ -179,9 +175,7 @@ class SQLAlchemyGenerationTaskRepository: offset: int = 0, ) -> list[GenerationTask]: """按项目+状态筛选任务列表。""" - query = self.session.query(GenerationTaskModel).filter( - GenerationTaskModel.project_id == project_id - ) + query = self.session.query(GenerationTaskModel).filter(GenerationTaskModel.project_id == project_id) if status: query = query.filter(GenerationTaskModel.status == status) query = query.order_by(GenerationTaskModel.created_at.desc()) @@ -198,9 +192,7 @@ class SQLAlchemyGenerationTaskRepository: status: str | None = None, ) -> int: """按项目+状态筛选计数。""" - query = self.session.query(GenerationTaskModel).filter( - GenerationTaskModel.project_id == project_id - ) + query = self.session.query(GenerationTaskModel).filter(GenerationTaskModel.project_id == project_id) if status: query = query.filter(GenerationTaskModel.status == status) return query.count() diff --git a/packages/application/generation_tasks.py b/packages/application/generation_tasks.py index 0e99812ee..f9738dfd0 100755 --- a/packages/application/generation_tasks.py +++ b/packages/application/generation_tasks.py @@ -65,12 +65,14 @@ class GetGenerationTaskUseCase: @dataclass(slots=True) class ListTasksFilter: """任务列表筛选条件。""" + status: str | None = None # pending, running, completed, failed, cancelled @dataclass(slots=True) class ListGenerationTasksResult: """带筛选和分页的任务列表结果。""" + items: list[GenerationTask] total: int