像这样的东西
projectListObservable
.subscribeOn(Schedulers.newThread())
.timeout(App.NETWORK_TIMEOUT_SEC, TimeUnit.SECONDS)
.retry(App.NETWORK_RETRY_COUNT)
.onError(e -> {
if (e instanseOf HttpError && ((HttpError)e).getCode == 403){
App.getInstance.getNetworkManager.reAuth();
} else {
throw(e);
}})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new ProjectListSubscriber());
此外,在这种情况下,我应该停止重试,但如果是网络问题(instanceof ioException
)则保持重试。
我认为您想用单个可观察到的实现太多的tihngs。
您可以使用一些HttpErrorHandler,它将具有方法
boolean fix(Exception e)
如果错误处理程序修复了异常(更新令牌等),则返回true。您可以为不同的情况使用不同的错误处理程序,也可以为所有情况使用不同的错误处理程序。TokenErrorHandler RetryErrorHandler,然后创建一个链。
在改型2之前,有一种集中处理错误的方法- 但是现在在restfit 2中,RestAdapter已经重命名为,并且没有。是否有一种方法可以使用进行集中式错误处理?
我有三种不同的系统。我使用Spring integration来同步所有这些系统中的数据。 系统2将调用服务方法来持久化数据,如果请求有效,则返回响应,否则抛出异常 我需要发送服务方法响应到系统1和系统3,只有当操作成功。调用服务方法后,根据服务方法响应,使用Transformer生成对系统3的请求。在transformer之后,我将请求放入mq队列。 更新的JMS出站代码 如果服务类失败,我需要
但是,使用retrofit每个请求都有其错误处理回调: 我如何在一个地方处理所有错误?
场景可能是:我的期望可能是批量10个数据点,我想对{failed 5,pass 5}或其他什么给出响应。 我的逻辑是将批处理拆分为数据元素并进行验证 成功的验证将发送给aggreagtor, 失败的验证将抛出错误并通过错误通道拾取。 收件人列表路由器将错误通道作为输入通道,并连接2个过滤器,目的是过滤某些类型的错误直接发送响应(与用户输入无关的信息-服务器错误等),某些类型的客户端错误将转到聚合器
在Spring integration中,我必须处理动态通道创建,但当我调试应用程序时,我看到不同通道之间的“阻塞”问题。 我知道是一个公共通道,在父上下文中共享,但如何为每个子上下文开发一个完整的独立场景?。公共网关是问题所在吗? 我在Spring integration flow async中看到了post错误处理,但对于每个子级,我都有一个完整的分离环境,我希望利用这些动态分离的优势。这可能
本文向大家介绍rx-java PublishSubject,包括了rx-java PublishSubject的使用技巧和注意事项,需要的朋友参考一下 示例 PublishSubject只向观察者发送那些在订阅时间之后由源Observable发出的对象。 一个简单的PublishSubject例子: 输出: 在上面的示例中,aPublishSubject订阅了一个Observable类似于时钟的,