我使用 Jersey HTTP 服务器和 Jersey 客户端来处理 REST 请求。
客户端向服务器发送文件,服务器处理文件并向客户端返回响应。我的问题是,服务器上的处理可能需要几分钟,甚至可能需要 1/2 小时。
我希望客户端知道请求在响应中是失败还是成功。但是,我将客户端上的 readTimeout 设置为 60 秒,因为我读到,将其设置为 0 是一种不好的做法。因此,有时我会SocketTimeoutException
在客户端上得到一个。
禁用 readTimeout 是否安全(将其设置为 0)?connectTimeout 仍为 10 秒。
或者我可以使用 TCP 保持活动吗?据我了解,这只会以几十分钟的间隔(取决于操作系统)发送这些数据包。
除了立即使用令牌返回然后在处理成功时使用令牌轮询服务器之外,我还能做些什么吗?我在某处读到了一些关于心跳包的东西。这个可以用吗?