服务器通知客户端请求正在处理不要read timed out

sweetBug 2017-07-19 02:07:31
我的服务器是tomcat,客户端是httpclient。客户端设置了超时时间为30秒。然而由于请求很耗时,往往30秒到了,服务端还没有处理完成,于是客户端就抛出read timed out了。请问tomcat是否有一种机制,这种机制会定时(比如10秒),给客户端一个响应(比如ack),这样客户端就不会在请求没有被处理完就超时了?
...全文
439 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sweetBug 2017-07-20
  • 打赏
  • 举报
回复
我用wireshark跟了下浏览器对tomcat的访问。发现浏览器会隔一段时间向tomcat发一个keep alive的ack。httpclient可以实现这样的功能么?
RockeyCui 2017-07-19
  • 打赏
  • 举报
回复
超时有两种情况吧:一种是你这个后台挂了,客户端一直请求不上,超过时间超时,二是你说的这种情况。 如果是第二种,你一定要在超时前告诉客户端一下,那么你给客户端返回结果了,链接也就关闭了,服务端处理成没成功你还是不知道。
sweetBug 2017-07-19
  • 打赏
  • 举报
回复
引用 4楼我是你的主体 的回复:
引用 1楼ylovep 的回复:
都已经超时了 还能通知客户端 超时就是连不上 怎么通知
就是要在超时给客户端吱一声
打错了,是超时前
sweetBug 2017-07-19
  • 打赏
  • 举报
回复
引用 1楼ylovep 的回复:
都已经超时了 还能通知客户端 超时就是连不上 怎么通知
就是要在超时给客户端吱一声
sweetBug 2017-07-19
  • 打赏
  • 举报
回复
引用 2楼Old_Rookie_Su 的回复:
没看到过有这种机制,而且这种方案也有问题吧。 个人觉得可以用异步,然后服务器端执行成功后写一个标识到一个地方,客户端每隔几秒来读取下这个标识。
谢谢!但是如果多个客户端都去轮循,感觉不是很好啊
Old_Rookie_Su 2017-07-19
  • 打赏
  • 举报
回复
没看到过有这种机制,而且这种方案也有问题吧。 个人觉得可以用异步,然后服务器端执行成功后写一个标识到一个地方,客户端每隔几秒来读取下这个标识。
ylovep 2017-07-19
  • 打赏
  • 举报
回复
都已经超时了 还能通知客户端 超时就是连不上 怎么通知

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧