我正在使用RpcRequestBuilder拦截我在应用程序上所做的每个RPC,并对其进行一些常规修改。有没有办法,如果我在我的RpcRequestBuilder上捕捉到一个可抛出的东西,并且我知道我应该再次尝试做远程过程调用,重新启动相同的远程过程调用?这在理论上是可能的,我只是不知道如何再次发起RPC请求。(是的,我会小心不要进入循环:)
发布于 2012-05-14 18:00:00
您是否尝试过简单地在RequestBuilder上调用send()
AFAICT,唯一的问题是如果你有一个带有Request (或RequestBuilder)返回类型的异步方法:返回的Request将是来自第一个请求的那个,第二个请求将被忽略,因此不能被调用内核中止。
要考虑这种情况,必须从RpcRequestBuilder的create()方法返回RequestBuilder的一个子类,覆盖send()以返回一个特殊的Request子类,该子类委托给真正的Request (并允许它被交换,因此您可以设置与重试对应的子类)。
https://stackoverflow.com/questions/10580131
复制相似问题