offFetch.py 777 B

123456789101112131415161718192021222324
  1. class RequestInterruptHandler:
  2. """处理请求中断的上下文管理器"""
  3. def __init__(self, request):
  4. self.request = request
  5. self.client_closed = False
  6. def __enter__(self):
  7. return self
  8. def __exit__(self, exc_type, exc_val, exc_tb):
  9. # 这里可以添加资源清理逻辑
  10. if exc_type is GeneratorExit:
  11. print("客户端中断了请求")
  12. return True # 抑制异常
  13. def is_client_connected(self):
  14. """检查客户端是否仍然连接"""
  15. try:
  16. # 检查 socket 是否关闭
  17. return not self.request.environ.get('werkzeug.socket').closed
  18. except:
  19. # 如果检查失败,假设连接仍然存在
  20. return True