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

FlowableOnBackpressureDrop忽略订阅的请求方法

谢烨烨
2023-03-14

我在下面试过了

Flowable.interval(100L, TimeUnit.MILLISECONDS)
    .onBackpressureDrop()
    .observeOn(Schedulers.computation())
    .subscribe(new Subscriber<Long>() {

      private Subscription subscription;

      @Override
      public void onSubscribe(Subscription subscription) {
        this.subscription = subscription;
        this.subscription.request(1L);
      }

      @Override
      public void onNext(Long t) {
        try {
          Thread.sleep(300L);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }

        System.out.println(t);

        subscription.request(1L);
      }

      ...
    });

我以为我会得到0,3,6...但是,我得到了0,1,2,3...因为Flowable最初得到的是请求(long.max_value)

    @Override
    public void onSubscribe(Subscription s) {
        if (SubscriptionHelper.validate(this.s, s)) {
            this.s = s;
            actual.onSubscribe(this);
            s.request(Long.MAX_VALUE);
        }
    }

共有1个答案

顾池暝
2023-03-14

observeon请求并预先缓冲128个元素,因此在开始的一段时间内不会丢弃任何东西。如果您让它运行128*300ms,它将开始跳过值。您可以将带有重载的预取量设置为1,并看到值迅速下降。

 类似资料:
  • 我试图爬过craiglist的论坛类别。组织机构(https://forums.craigslist.org/).我的蜘蛛: 我通过错误回调收到以下消息: [失败实例:Traceback:: /usr/local/lib/python2.7/site-packages/twisted/internet/defer.py: 455:回调 /usr/local/lib/python2.7/site-p

  • 很好的一天! 我的应用程序使用简单的http客户端-服务器通信,通过客户端的凌空库建立。首先,我启动一个授权请求: 之后,我请求列出与当前用户相关的设备列表。此时,我收到了来自响应标题的cookei。auth请求的完整标头响应输出: 缓存控制——没有存储,没有缓存,必须重新验证,后检查=0,预检查=0 在身份验证请求的onResponce回调中,我将Set Cookie值作为sessionId,并

  • 嗨,我不能收到确认订阅请求从亚马逊,尝试了一切。我的endpointurl是:。我尝试了以下代码片段来接收响应:1)-> 2)-> 请帮助我如何接收来自amazon的响应,也请指出我是否在代码中做错了什么或者我遗漏了任何一步。多谢了。

  • 我的Java代码使用共享的ApacheHttpClient 4.4。1.我将每个POST请求级别上的连接超时、套接字超时和连接请求超时设置为100毫秒。它大部分时间都很好用。然而,在大量请求(压力测试)时,HttpClient忽略这些超时;请求可能需要20秒或更长时间。这是我的密码: 在某些情况下,我会得到如下日志记录: 2018-10-26 14:18:45496[my-thread-1]调试c

  • 我将WireMock作为独立进程启动: Java-jar wiremock-standalone-2 . 6 . 0 . jar-port 8080-v 还行。 当超文本传输协议请求内容后缀时 /api/profile/Favorite/WireMock必须返回存根响应。对所有其他请求必须通过WireMock忽略,并且必须转发到正式服。 我必须如何配置WireMock?

  • 问题内容: 我刚刚从jQuery 1.3.2更新到1.4.3,并且在发出AJAX DELETE请求时看到了一些新行为。由于某种原因,在我的参数中传递的数据没有发送到服务器。例如: 最终向发送了DELETE请求,没有其他数据。但是,这种类型的调用可以很好地传递参数: 有没有其他人看到过类似的行为?有没有理由不再起作用(即:是设计使然,还是错误)?关于如何使其运作的任何建议? 此外,如果有人想知道为什