我有一个基于Spring的Web服务(JAX-RS),当一个长时间的操作运行时,我想拦截客户端断开连接。
例如,当客户端执行HTTP调用时,在服务器上创建了大量工作,但由于某种原因(进程终止)而断开连接,我想拦截该断开连接并取消服务器上的工作,因为客户端永远不会得到他所等待的结果。
在Spring中是否可能实现这一点?
谢谢!
我有一个基于Spring的Web服务(JAX-RS),当一个长时间的操作运行时,我想拦截客户端断开连接。
例如,当客户端执行HTTP调用时,在服务器上创建了大量工作,但由于某种原因(进程终止)而断开连接,我想拦截该断开连接并取消服务器上的工作,因为客户端永远不会得到他所等待的结果。
在Spring中是否可能实现这一点?
谢谢!
不,但这与Spring无关。
即使您直接访问用于HTTP传输的套接字,也无法在不尝试从中读取或写入数据的情况下检测到对等方已关闭套接字。显然,在不与任何HTTP协议处理程序发生冲突的情况下,这是不可能的,并且还需要尝试使用套接字。
getStatus()
这样的方法,供客户端定期检查状态。应该可以解决问题。 - ant