Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 长时间运行的请求超时_Java_Http_Tcp_Jersey - Fatal编程技术网

Java 长时间运行的请求超时

Java 长时间运行的请求超时,java,http,tcp,jersey,Java,Http,Tcp,Jersey,对于REST请求,我使用Jersey HTTP服务器和Jersey客户端 客户端向服务器发送一个文件,服务器处理该文件并向客户端返回响应。我的问题是,服务器上的处理可能需要几分钟,甚至可能需要1/2小时 我希望客户端知道请求在响应中是否失败或成功。但是,我将客户端上的readTimeout设置为60秒,因为我读到,将其设置为0是一种不好的做法。因此,我有时会在客户端上得到一个SocketTimeoutException 禁用readTimeout(将其设置为0)是否安全?连接超时仍然是10秒 或

对于REST请求,我使用Jersey HTTP服务器和Jersey客户端

客户端向服务器发送一个文件,服务器处理该文件并向客户端返回响应。我的问题是,服务器上的处理可能需要几分钟,甚至可能需要1/2小时

我希望客户端知道请求在响应中是否失败或成功。但是,我将客户端上的readTimeout设置为60秒,因为我读到,将其设置为0是一种不好的做法。因此,我有时会在客户端上得到一个
SocketTimeoutException

禁用readTimeout(将其设置为0)是否安全?连接超时仍然是10秒

或者我可以使用TCP保持活动吗?据我所知,这只会在几分钟的大间隔内发送这些数据包(取决于操作系统)


如果处理成功,我还可以做些什么,而不是立即返回一个令牌,然后用令牌轮询服务器?我在某处读到一些关于心跳信号包的信息。可以使用它吗?

显然,您不应该将超时设置得太高,因为这样会使线程等待。有多个请求会让许多线程等待,并导致服务器阻塞


相反,如果您不想轮询服务器以查看请求是否就绪,我建议您在请求中包含某种标识符,并让服务器在就绪时返回答案,同时包含相应的标识符,然后在客户端匹配请求和响应。

我如何知道服务器何时准备就绪?这需要再次进行投票。