【问题标题】:RxJava Scheduler interval http polling wait for request to finish before polling again?RxJava调度程序间隔http轮询等待请求完成后再轮询?
【发布时间】:2019-08-19 17:35:15
【问题描述】:

我将 RxJava 与 AndroidFastNetworking 库一起使用。如果我想使用调度程序类创建一个每 60 秒初始化一次 Http 请求的 Observable,但我希望它等待初始化请求完成(成功或错误),然后再次开始 60 秒间隔并初始化后续一,那会是什么样子?

【问题讨论】:

    标签: http rx-java afnetworking


    【解决方案1】:

    使用rangeLong 源和flatMap 和maxConcurrent = 1(确保flatMap 一次只订阅一个内部Flowable):

    Single<Result> request = ...;
    Flowable<Result> delay = 
      Flowable.<Result>empty()
        .delaySubscription(60, TimeUnit.SECONDS, scheduler);
    Flowable<Result> flowable = 
      Flowable
        .rangeLong(0, Long.MAX_VALUE)
        .flatMap(n -> request
           .toFlowable()
           .concatWith(delay), 1))
        .doOnNext(result -> System.out.println(result))
        ...   
    

    【讨论】:

      猜你喜欢
      • 2012-03-27
      • 2023-04-05
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      相关资源
      最近更新 更多