Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6abd3389f3 |
@@ -443,11 +443,27 @@ class ProcessMonitor:
|
|||||||
|
|
||||||
def stop_session(self, session_id):
|
def stop_session(self, session_id):
|
||||||
"""停止会话"""
|
"""停止会话"""
|
||||||
|
# 先尝试从内存中停止
|
||||||
if session_id in self.active_sessions:
|
if session_id in self.active_sessions:
|
||||||
self.active_sessions[session_id]['stop'] = True
|
self.active_sessions[session_id]['stop'] = True
|
||||||
self.active_sessions[session_id]['paused'] = False
|
self.active_sessions[session_id]['paused'] = False
|
||||||
db.update_session_status(session_id, 'stopped')
|
db.update_session_status(session_id, 'stopped')
|
||||||
|
logger.info(f"停止会话(内存): {session_id}")
|
||||||
return True
|
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
|
return False
|
||||||
|
|
||||||
def get_session_status(self, session_id):
|
def get_session_status(self, session_id):
|
||||||
|
|||||||
Reference in New Issue
Block a user