场景:用户正在向我的webapp/DB写入数据,有时使用的是带有坏comm.link的移动设备(GPRS)
因为我不想要重复的数据,所以在他们的写请求中没有超时,但这意味着有时他们会等待很长时间等待asych回调到达。
通过RpcRequestBuilder,我可以为远程过程调用请求添加一个超时,但是如果它过期了,有没有办法知道数据是否被存储了,如果请求没有到达服务器,那么丢失的是响应呢?
如果这不是我看到的实现这一点的唯一方法,那就是通过我的数据库中的唯一约束。
提前使用Ty
发布于 2012-02-02 21:37:22
如果请求因超时而失败,那么要知道它是否能够保存有效负载数据,唯一的100%方法是发送另一个请求,并查看数据是否正确保存。
发布于 2013-02-19 15:28:23
这个状态应该被称为未知状态。在开发Client/Server和多层应用程序时,您总是会遇到这个问题,不仅超时,而且服务器端的一些错误处理也很糟糕。你需要将你的呼叫分类到服务器上,我喜欢这样,事务,查询和重要。事务是在您的情况下发生的(服务器中的某些内容将被更改或更新)在这种类型的调用失败的情况下,I通知用户我们在处理他/她的请求时失去了连接,我还通知他/她在尝试重新执行之前需要仔细检查事务(如果您有主键或引用,您可以根据用户的行为进行此检查)。对于查询调用,我只是忽略并再次调用,对于最后一种类型,它通常是查询,但它对应用程序的工作很重要,所以我以不同的方式处理它。
这就是为什么对你的呼叫进行分类的概念很重要。
阿拉
https://stackoverflow.com/questions/9109011
复制相似问题