diff --git a/apps/api/app/core/task_enqueue.py b/apps/api/app/core/task_enqueue.py index 0b3048d65..a4c5f361b 100755 --- a/apps/api/app/core/task_enqueue.py +++ b/apps/api/app/core/task_enqueue.py @@ -6,8 +6,8 @@ from app.core.celery_app import celery_app logger = logging.getLogger(__name__) # ── 限流阈值常量(全系统统一管理,不要在业务代码里硬编码) ── -USER_PENDING_LIMIT = 3 # 单用户 pending 上限 -GLOBAL_PENDING_LIMIT = 20 # 全局 pending 上限 +USER_PENDING_LIMIT = 3 # 单用户 pending 上限 +GLOBAL_PENDING_LIMIT = 20 # 全局 pending 上限 class UserPendingLimitExceeded(Exception): @@ -71,9 +71,7 @@ def check_queue_limits( user_pending, user_pending_limit, ) - raise UserPendingLimitExceeded( - user_id=user_id, pending_count=user_pending, limit=user_pending_limit - ) + raise UserPendingLimitExceeded(user_id=user_id, pending_count=user_pending, limit=user_pending_limit) def _mark_task_failed_safely( @@ -157,9 +155,7 @@ def safe_enqueue_generation_task( user_pending, user_pending_limit, ) - exc = UserPendingLimitExceeded( - user_id=user_id, pending_count=user_pending, limit=user_pending_limit - ) + exc = UserPendingLimitExceeded(user_id=user_id, pending_count=user_pending, limit=user_pending_limit) _mark_task_failed_safely(task, generation_task_repository, log_prefix, str(exc)) raise exc @@ -201,9 +197,7 @@ def safe_enqueue_generation_task( exc: Exception = GlobalQueueFull(pending_count=global_after, limit=global_pending_limit) else: reason = f"用户 pending 超限(入队后): {user_after}/{user_pending_limit}" - exc = UserPendingLimitExceeded( - user_id=user_id, pending_count=user_after, limit=user_pending_limit - ) + exc = UserPendingLimitExceeded(user_id=user_id, pending_count=user_after, limit=user_pending_limit) logger.warning( "[队列限流] %s, task_id=%s, user_id=%s — 回滚状态为 failed", diff --git a/tests/unit/test_task_queue_limit.py b/tests/unit/test_task_queue_limit.py old mode 100755 new mode 100644 index 6a906df57..dc4e56b41 --- a/tests/unit/test_task_queue_limit.py +++ b/tests/unit/test_task_queue_limit.py @@ -1,8 +1,9 @@ """任务队列限流防护单元测试。""" + from __future__ import annotations -import sys import os +import sys from unittest.mock import MagicMock import pytest @@ -18,7 +19,6 @@ from app.core.task_enqueue import ( safe_enqueue_generation_task, ) - # --------------------------------------------------------------------------- # Mock helpers # ---------------------------------------------------------------------------