修复停止功能无法终止旧会话的问题
- 修改 stop_session 方法,支持停止数据库中的旧会话 - 服务重启后 active_sessions 为空,导致无法停止旧会话 - 现在会检查数据库并直接更新会话状态 - 修复 chatglm-3 等长时间运行会话无法停止的问题
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user