繁体   English   中英

在Java中处理客户端请求超时

[英]Handle client-side request timeout in java

客户端发送请求并捕获超时异常。 但是,服务器仍在处理请求并将其保存到数据库。 在此之前,客户端已经发送了第二个请求,该请求使数据库上的记录增加了一倍。 如何防止这种情况发生? 我正在使用Java Servlet和JavaScript。

一些建议:

1)增加客户端超时时间。

2)提高服务器效率,使其响应速度更快。

3)在返回主响应之前,让服务器以中间的“我正在处理”响应进行响应。

4)服务器在响应客户端之前是否需要完成所有工作,或者可以将其中的一些工作分流到单独的进程中以便以后运行?

客户端发送请求并捕获超时异常。 但是服务器仍在处理请求

使servlet生成一些输出(可以只是空白),并每隔一段时间(例如每15秒)刷新一次流。

如果在客户端已关闭连接,则写入将失败,并出现套接字异常。

在此之前,客户端已经发送了第二个请求,该请求使数据库上的记录翻了一番

使用数据库的原子性,例如,唯一键。 通过创建唯一记录(可能处于某些“未完成”状态)来启动该过程,如果该记录已经存在,它将失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM