方案: 用户有时使用带有错误comm.link(GPRS)的移动设备将数据写入我的webapp / DB
由于我不想要重复数据,因此写入请求中没有超时,但这意味着有时它们会等待很长时间才能到达asych回调。
通过RpcRequestBuilder,我可以为RPC请求添加超时但如果它到期,是否有任何方法可以知道数据是否已存储,即使请求未到达服务器,也是丢失的响应?
如果不是我认为实现这一目标的唯一方法是通过我的数据库中的唯一约束。
事先提前答案 0 :(得分:1)
如果请求因超时而失败,那么只知道它是否能够保存有效负载数据的唯一方法是发送另一个请求并查看数据是否已正确保存。
答案 1 :(得分:0)
应调用此状态,即UNKNOWN状态。在开发客户端/服务器和多层应用程序时,您将始终面临这一问题,不仅是超时,还有服务器端的一些不良错误处理。您需要将您的呼叫分类到服务器,我喜欢这样,交易,查询和重要。交易是你的情况下发生的事情(在服务器中会发生变化或更新的事情),如果这类呼叫出现此类故障,我告知用户我们在处理他时失去了连接/她的请求,我还告诉他/她需要在尝试重新执行之前仔细检查交易(如果您有主键或参考,您可以检查用户的行为)。对于查询电话,我只是忽略并再次呼叫,对于最后一种类型,它通常是查询,但它对于应用程序的工作很重要,所以我以不同的方式处理它。
这就是为什么拥有分类呼叫的概念很重要。
阿拉