2017-02-21 91 views
0

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

+0

错误,增加超时? – EJP

回答

0

几点建议: -

1)增加客户端超时。

2)使服务器更高效,以便更快响应。

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

4)服务器在响应客户端之前是否需要执行全部的工作,或者可以将某些服务器卸载到单独的进程以供稍后运行?

0

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

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

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

这种情况发生之前,客户端已经发出该数据库

使用数据库的原子上加倍记录,例如,一个独特的密钥的第二请求。通过创建一个独特的记录(可能处于某种“未完成”状态)来启动流程,如果记录已经存在,它将失败。