|
|
@@ -50,6 +50,12 @@ class SSECallbackManager:
|
|
|
self._callbacks.clear()
|
|
|
logger.info("已清空所有SSE回调")
|
|
|
|
|
|
+ def force_close_sse(self, callback_task_id: str):
|
|
|
+ """强制关闭SSE连接"""
|
|
|
+ if callback_task_id in self._callbacks:
|
|
|
+ del self._callbacks[callback_task_id]
|
|
|
+ logger.info(f"强制关闭SSE连接: {callback_task_id}")
|
|
|
+
|
|
|
sse_callback_manager = SSECallbackManager()
|
|
|
|
|
|
class ProgressManager:
|
|
|
@@ -314,6 +320,9 @@ class ProgressManager:
|
|
|
# 取消SSE回调注册,避免重复推送
|
|
|
sse_callback_manager.unregister_callback(callback_task_id)
|
|
|
|
|
|
+ # 强制关闭SSE连接
|
|
|
+ sse_callback_manager.force_close_sse(callback_task_id)
|
|
|
+
|
|
|
logger.info(f"任务关闭: {callback_task_id}")
|
|
|
except Exception as e:
|
|
|
logger.error(f"标记任务完成失败: {str(e)}")
|