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

在传递覆盖onSubscribe的订阅服务器时调用dispose()

东方华晖
2023-03-14
@NonNull Observable<Long> src = Observable.interval(1, TimeUnit.SECONDS);
src.subscribe(new Observer<Long>() {
      private Disposable d;

      @Override
      public void onSubscribe(@NonNull Disposable d) {
           this.d = d;
      }

      @Override
      public void onNext(@NonNull Long aLong) {
           if(!d.isDisposed()) {
              System.out.println("Number onNext = " + aLong);
           }
      }

       @Override
       public void onError(@NonNull Throwable e) {

       }

       @Override
       public void onComplete() {
           System.out.println("completed");
       }
 });

但我不知道如何为该订阅调用dispose()subscribe通过observer作为参数返回void并且subscribeWith在没有编译错误的情况下不接受我的observer

这怎么行?我误会了什么?

共有1个答案

华浩壤
2023-03-14
@SchedulerSupport(SchedulerSupport.NONE)
@Override
public final void subscribe(Observer<? super T> observer) {
    ...
}
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {
    ...
}
// Create a reference of disposable object
Disposable d = Observable.interval(1, TimeUnit.SECONDS)
            .subscribe(longTime -> {
                System.out.println("Number onNext = " + aLong);
            }, throwable -> {
                
            })

// dispose it
d.dispose()
 类似资料:
  • 我有一个非常简单的设置,其中producer发布事件,并有一个订阅者来处理。这两个角色都托管在Azure中,使用存储队列作为传输。这是生产者配置: 这是订户配置: 和应用程序。配置: 事件的定义与往常一样: 此次活动的发布与其他活动一样: 因此,浏览IntelliSense流时,我可以看到以下消息输出到控制台: 控制台:“收到发件人发送的ID为0d46873c-102e-4d2a-b2a8-a32

  • 我创建了一个示例客户机/服务器应用程序来熟悉Spring WebFlux/Reactor Netty。现在,当响应包含Flux并且媒体类型是“text/event-stream”时,我对客户端的行为有点困惑。我看到的是,服务器上产生的每个元素都被立即发送到客户机,但还没有交付给订户。在服务器端的生产者完成流量之后,第一次交付给订阅者。对我来说,这意味着所有元素首先在客户端的reactor-nett

  • 所以我有一个。我想知道每个下游订户调用何时发出,这既是为了测量每个下游订户花费的时间,也是为了反压。 让我半途而废--我可以用自己的包装每个单独的订阅服务器,如下面的示例所示。当所有下游订户完成下一个调用时,它不会通知我,而我自己也不必做一些记账。 提前感谢!

  • 我有一个使用ActiveMQ的JMS生产者/订阅者的简单Spring应用程序,配置如下: 我试过所有可能的解决办法,但没有一个奏效。我们非常感谢任何帮助

  • 我正在尝试使用spring-integration-kafka-2.1.0。在我公司的项目中发布。但是,由于下面列出的例外情况,它不起作用:org。springframework。信息。MessageDeliveryException:Dispatcher没有频道“org”的订户。springframework。网状物上下文WebApplicationContext:/order。“奥Kafka”

  • 我正在使用mosquitto(http://mosquitto.org/)作为MQTT代理,并寻求关于负载平衡订阅服务器的建议(针对相同的主题)。这是如何实现的?我所读到的关于该协议的所有内容都表明,相同主题的所有订阅者都将获得一条发布消息。 这似乎效率很低,因此我正在寻找一种方法,将发布的消息以循环方式提供给连接的订阅服务器之一,以确保负载平衡状态。