当前位置: 首页 > 知识库问答 >
问题:

如何知道在下游订阅服务器上何时调用onNext()?

司马宏邈
2023-03-14

所以我有一个可观察的。我想知道每个下游订户onnext调用何时发出,这既是为了测量每个下游订户花费的时间,也是为了反压。

observable.lift让我半途而废--我可以用自己的订阅服务器包装每个单独的订阅服务器,如下面的示例所示。当所有下游订户完成下一个调用时,它不会通知我,而我自己也不必做一些记账。

eventObservable.lift(subscriber -> new Subscriber<Event>() {
        @Override
        public void onStart() {
            request(1);
        }

        @Override
        public void onCompleted() {
            subscriber.onCompleted();
        }

        @Override
        public void onError(Throwable e) {
            subscriber.onError(e);
        }

        @Override
        public void onNext(Event event) {
            subscriber.onNext(event);
            request(1);
        }
    });

提前感谢!

共有1个答案

戚修雅
2023-03-14

像doOnXXX这样的doOnXXX方法http://reactivex.io/rxjava/javadoc/rx/observable.html#doOnNext%28rx.functions.action1%29对您来说足够吗?这样您就可以截获onNext和其他事件。

 类似资料:
  • 根据IBM文档:清除策略指定在检测到陈旧连接或致命连接错误时如何清除连接。有效值为EntirePool和FailingConnectionOnly。 问题:服务器如何/何时知道连接已过时?它是否会尽快(立即)清洗池任何连接都会过时,或者按照收获时间发生? 假设收割时间为180秒。假设收割线程上次在下午3:05运行,连接在下午3:06失效,服务器是在下午3:06自己清除池,还是只在下午3:08清除池

  • 我一直在试验项目反应器和反应流。我在使用使流在不同的线程上运行时遇到了一个问题。将我的代码放在主线程中,我需要主线程块,直到流完成,所以我做了这样的事情: 然后我注意到有一个方法执行阻塞。但是我不能同时使用订阅和块最后,因为它们不返回。 有什么优雅的方法可以做到这一点吗?

  • 刚开始玩推送通知,我设法处理了所有的订阅过程,我正在数据库中保存endpoint和密钥。我的问题是,如果有的话,我应该遵循什么策略来删除数据库中的旧字幕详细信息?。所以,如果有人允许通知,他们撤销了权限,我怎么知道是谁从数据库中删除了详细信息?。因为如果用户取消订阅,我只会从pushManager获得空订阅。

  • 问题内容: 现在,我使用一个静态布尔值来告诉初始化何时发生。有没有更简单的方法知道我已经调用了initialize? 谢谢!!! 解决了!!!!非常感谢您的评论。您需要在扩展应用程序的类中初始化解析,然后将其作为应用程序(而不是其他活动)添加到清单文件中。 :) 这是我使用Parse的课程: 这是我的android清单文件 问题答案: 创建一个应用程序类,然后在onCreate中初始化解析。 在此

  • 第一,我试过了 第二,我尝试了下面的。(使用onErrorResumeNext),但取消了订阅。 (未调用onError,但调用OnComplete。因此已取消订阅) 第三,我试了下面。(带重试) 这比第一好。但没有刻录。 我想使刷新按钮,工作后错误。 我想知道 null 对不起,我的英语太差了。

  • 我正在尝试创建以下链: 因此,我需要得到5。但是在执行1,2和3之前,4。 代码运行正常,但我想退出 从