Skip to content

Commit 0bde847

Browse files
committed
refactor order
1 parent 7061bfb commit 0bde847

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

lightllm/server/core/objs/ordered_req_manager.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,25 @@ class OrderedRequestManager:
88
def __init__(self):
99
self.pending_requests = {} # 缓存未按顺序到达的请求: {request_num: request_data}
1010
self.current_request_num = 0 # 下一个应该处理的请求的 request_num
11-
self.lock = asyncio.Lock() # 用于线程安全的锁
11+
self.lock = asyncio.Lock()
1212

1313
def _convert_group_id_to_request_num(self, group_req_id):
1414
return group_req_id // MAX_BEST_OF
1515

1616
async def add_request(self, request_data: GroupReqObjs):
1717
"""添加新请求到缓存"""
18-
async with self.lock:
19-
request_num = self._convert_group_id_to_request_num(request_data.group_req_id)
20-
self.pending_requests[request_num] = request_data
21-
print(f"Request {request_num} added: {request_data}")
18+
request_num = self._convert_group_id_to_request_num(request_data.group_req_id)
19+
self.pending_requests[request_num] = request_data
2220

2321
async def get_next_request(self) -> GroupReqObjs:
2422
"""获取下一个应该处理的请求"""
25-
async with self.lock:
26-
if self.current_request_num in self.pending_requests:
23+
while True:
24+
if self.current_request_num not in self.pending_requests:
25+
await asyncio.sleep(0.01)
26+
continue
27+
else:
2728
request_data = self.pending_requests.pop(self.current_request_num)
29+
print(f"Get request {self.current_request_num}")
2830
self.current_request_num += 1
2931
return request_data
30-
return None
32+
return None

0 commit comments

Comments
 (0)