Reactor系列(十六)disposable停止Flux流

#java#reactor#flux#disposable#

停止flux流

视频讲解: https://www.bilibili.com/video/av81385859/

FluxMonoTestCase.java
package com.example.reactor;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import reactor.core.Disposable;
import reactor.core.publisher.Flux;

import java.time.Duration;

@Slf4j
public class FluxMonoTestCase extends BaseTestCase {
    @Test
    public void disposable() throws InterruptedException {
        Flux<Long> longFlux =Flux.interval(Duration.ofMillis(1));
        //take方法准确获取订阅数据量
        Disposable disposable = longFlux.take(50).subscribe(x->lo
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Disposable FluxReactor 中的一个特殊类型,它表示一个可以被手动取消(disposed)的 Flux。在使用 Disposable Flux 时,你可以通过订阅它来获取数据,然后在不需要时手动取消订阅,释放相关资源。 Disposable Flux 的创建方式与普通的 Flux 相似,可以通过各种操作符组合、转换、过滤等来创建和处理数据。不同之处在于 Disposable Flux 提供了一个额外的方法 `dispose()`,用于手动取消订阅。 当你调用 `dispose()` 方法时,Disposable Flux 将会停止产生新的事件,并触发相关清理操作。这可以用于及时释放资源,避免可能出现的内存泄漏或其他问题。 下面是一个简单的示例代码,展示了如何使用 Disposable Flux: ```java Disposable disposable = Flux.just("Hello", "World") .delayElements(Duration.ofSeconds(1)) .subscribe(System.out::println); // 3秒后取消订阅 Thread.sleep(3000); disposable.dispose(); ``` 在上面的例子中,我们创建了一个 Disposable Flux,它每隔一秒发出一个字符串元素。然后我们等待 3 秒钟,然后调用 `dispose()` 方法来取消订阅。这样可以确保在不需要数据时及时释放资源。 需要注意的是,一旦订阅被取消,Disposable Flux 将无法再次被订阅。如果你需要重新使用同一个 Disposable Flux,你需要重新创建一个新的实例。 希望这个解答能够帮助到你!如有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值