From 2e5071a55d4d32c217f511c79aada9123683bc94 Mon Sep 17 00:00:00 2001 From: SXP-Simon Date: Tue, 3 Mar 2026 21:04:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(concurrency):=20=E4=BC=98=E5=8C=96=E7=BE=A4?= =?UTF-8?q?=E7=BB=84=E4=BB=BB=E5=8A=A1=E9=94=81=E7=9A=84=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A1=AE=E4=BF=9D=E9=94=81=E7=9A=84?= =?UTF-8?q?=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/application/services/analysis_application_service.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/application/services/analysis_application_service.py b/src/application/services/analysis_application_service.py index 66a4cb6..9c582d2 100644 --- a/src/application/services/analysis_application_service.py +++ b/src/application/services/analysis_application_service.py @@ -71,9 +71,10 @@ class AnalysisApplicationService: lock_key = f"{task_type}:{group_id}" # 获取或创建该群组特有的锁(保留锁作为第二道资源限流防线) - if lock_key not in self._locks: - self._locks[lock_key] = asyncio.Lock() - lock = self._locks[lock_key] + lock = self._locks.get(lock_key) + if lock is None: + lock = asyncio.Lock() + self._locks[lock_key] = lock # 使用同步集合实现原子化的“运行中”检查 # 在 asyncio 的单线程循环中,同步代码段不会被中断,因此这是原子操作