读取的接口,去掉全局锁
This commit is contained in:
@@ -9,7 +9,7 @@ import os
|
|||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
from threading import Lock
|
|
||||||
from typing import Any, AsyncGenerator, Dict, List, Optional
|
from typing import Any, AsyncGenerator, Dict, List, Optional
|
||||||
|
|
||||||
import redis
|
import redis
|
||||||
@@ -51,9 +51,7 @@ _neo4j_connector = Neo4jConnector()
|
|||||||
class MemoryAgentService:
|
class MemoryAgentService:
|
||||||
"""Service for memory agent operations"""
|
"""Service for memory agent operations"""
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.user_locks: Dict[str, Lock] = {}
|
|
||||||
self.locks_lock = Lock()
|
|
||||||
|
|
||||||
def writer_messages_deal(self,messages,start_time,group_id,config_id,message):
|
def writer_messages_deal(self,messages,start_time,group_id,config_id,message):
|
||||||
messages = str(messages).replace("'", '"').replace('\\n', '').replace('\n', '').replace('\\', '')
|
messages = str(messages).replace("'", '"').replace('\\n', '').replace('\n', '').replace('\\', '')
|
||||||
@@ -83,12 +81,7 @@ class MemoryAgentService:
|
|||||||
|
|
||||||
raise ValueError(f"写入失败: {messages}")
|
raise ValueError(f"写入失败: {messages}")
|
||||||
|
|
||||||
def get_group_lock(self, group_id: str) -> Lock:
|
|
||||||
"""Get lock for specific group to prevent concurrent processing"""
|
|
||||||
with self.locks_lock:
|
|
||||||
if group_id not in self.user_locks:
|
|
||||||
self.user_locks[group_id] = Lock()
|
|
||||||
return self.user_locks[group_id]
|
|
||||||
|
|
||||||
def extract_tool_call_info(self, event: Dict) -> bool:
|
def extract_tool_call_info(self, event: Dict) -> bool:
|
||||||
"""Extract tool call information from event"""
|
"""Extract tool call information from event"""
|
||||||
@@ -417,11 +410,6 @@ class MemoryAgentService:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
audit_logger = None
|
audit_logger = None
|
||||||
|
|
||||||
# Get group lock to prevent concurrent processing
|
|
||||||
group_lock = self.get_group_lock(group_id)
|
|
||||||
|
|
||||||
with group_lock:
|
|
||||||
# Step 1: Load configuration from database only
|
|
||||||
try:
|
try:
|
||||||
config_service = MemoryConfigService(db)
|
config_service = MemoryConfigService(db)
|
||||||
memory_config = config_service.load_memory_config(
|
memory_config = config_service.load_memory_config(
|
||||||
|
|||||||
Reference in New Issue
Block a user