修复停止功能无法终止旧会话的问题

- 修改 stop_session 方法,支持停止数据库中的旧会话
- 服务重启后 active_sessions 为空,导致无法停止旧会话
- 现在会检查数据库并直接更新会话状态
- 修复 chatglm-3 等长时间运行会话无法停止的问题
This commit is contained in:
2026-07-17 00:36:57 +08:00
parent 19c7592e0e
commit 6abd3389f3
+16
View File
@@ -443,11 +443,27 @@ class ProcessMonitor:
def stop_session(self, session_id):
"""停止会话"""
# 先尝试从内存中停止
if session_id in self.active_sessions:
self.active_sessions[session_id]['stop'] = True
self.active_sessions[session_id]['paused'] = False
db.update_session_status(session_id, 'stopped')
logger.info(f"停止会话(内存): {session_id}")
return True
# 如果不在内存中,检查数据库并直接更新状态
session = db.get_process_session(session_id)
if session:
# 只有运行中或暂停状态的会话才能停止
if session.get('status') in ('running', 'paused', 'pending'):
db.update_session_status(session_id, 'stopped')
logger.info(f"停止会话(数据库): {session_id}")
return True
else:
logger.warning(f"会话状态为 {session.get('status')},无法停止")
return False
logger.warning(f"会话不存在: {session_id}")
return False
def get_session_status(self, session_id):