fix logger

This commit is contained in:
CakeCN
2025-12-11 15:23:50 +08:00
parent 99758ce1f8
commit 5df2931fa1

View File

@@ -433,26 +433,37 @@ class HSAEngineClient(ASEngineClient):
super().__init__(server_url, namespace, id) super().__init__(server_url, namespace, id)
self.chatmanager = chatmanager self.chatmanager = chatmanager
def loadmarkdown(self, fmd, fmdp, fsp): def loadmarkdown(self, fmd, fmdp, fsp):
with self.chatmanager.app.app_context(): # 保存app实例以便在回调中使用
now = time.time() app = self.chatmanager.app
# 并行发送三个消息获取事件对象和ack_id
event1, ack_id1 = self.send_text('markdown-in', fmd, self.id, wait_for_ack=True, return_event=True) def log_info(message):
event2, ack_id2 = self.send_text('markdown-prompt-in', fmdp, self.id, wait_for_ack=True, return_event=True) """安全的日志记录函数,确保在任何线程中都能使用"""
event3, ack_id3 = self.send_text('score-prompt-in', fsp, self.id, wait_for_ack=True, return_event=True) try:
self.chatmanager.app.logger.info(f"Load markdown time cost: {time.time() - now}") with app.app_context():
now = time.time() app.logger.info(message)
# 等待所有事件完成 except Exception as e:
timeout = 5 # 超时时间 print(f"Log error: {e}")
success1 = event1.wait(timeout=timeout) print(f"Message: {message}")
success2 = event2.wait(timeout=timeout)
success3 = event3.wait(timeout=timeout) now = time.time()
self.chatmanager.app.logger.info(f"Wait markdown time cost: {time.time() - now}") # 并行发送三个消息获取事件对象和ack_id
now = time.time() event1, ack_id1 = self.send_text('markdown-in', fmd, self.id, wait_for_ack=True, return_event=True)
# 清理ACK事件 event2, ack_id2 = self.send_text('markdown-prompt-in', fmdp, self.id, wait_for_ack=True, return_event=True)
if ack_id1 in self.ack_events: event3, ack_id3 = self.send_text('score-prompt-in', fsp, self.id, wait_for_ack=True, return_event=True)
del self.ack_events[ack_id1] log_info(f"Load markdown time cost: {time.time() - now}")
if ack_id2 in self.ack_events: now = time.time()
del self.ack_events[ack_id2] # 等待所有事件完成
if ack_id3 in self.ack_events: timeout = 5 # 超时时间
del self.ack_events[ack_id3] success1 = event1.wait(timeout=timeout)
return success1 and success2 and success3 success2 = event2.wait(timeout=timeout)
success3 = event3.wait(timeout=timeout)
log_info(f"Wait markdown time cost: {time.time() - now}")
now = time.time()
# 清理ACK事件
if ack_id1 in self.ack_events:
del self.ack_events[ack_id1]
if ack_id2 in self.ack_events:
del self.ack_events[ack_id2]
if ack_id3 in self.ack_events:
del self.ack_events[ack_id3]
return success1 and success2 and success3