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

如何计数流量中的项目,如果计数大于X,返回错误,否则继续流水线

谢同化
2023-03-14

我在想:

以某种方式使用flatmap并在此flatmap中执行某些操作。不知何故,我发现Flux中有一个reduce方法可能会有所帮助。

关键是,我不知道如何进行。

共有1个答案

秦安怡
2023-03-14

我不完全确定你想要什么,所以在假设的基础上提供两个建议

1...您希望收集所有元素,然后评估是否有超过n的元素,如果是,抛出错误。您可以使用collectList,计数元素,然后转换回flux(如果在任何情况下)。如果总数低于限制,这将只对任何元素执行dostufle

    Flux.range(1,10)
            .collectList()
            .flatMap(s -> 
                s.size()>7 
                    ? Mono.error(new RuntimeException("TOO MANY!")) 
                    : Mono.just(s))
            .flatMapMany(Flux::fromIterable)
            .map(this::doStuff)

2..您想要评估动态元素的数量,您可以使用外部原子计数器对其进行评估。这将对每个元素dostufle直到有问题的元素。

    AtomicLong count = new AtomicLong();

    Flux.range(1,10)
            .flatMap(s -> 
                count.incrementAndGet() > 7 
                    ? Flux.error(new RuntimeException("TOO MANY!")) 
                    : Flux.just(s))
             .map(this::doStuff);
 类似资料:
  • 我有一种感觉,这是一个业余的错误,我希望你们能帮助我!

  • 有时它可以返回多个结果。因此,我不认为会起作用。 如何在Python中计算行数?就像在PHP中一样,我可以使用。 我找不到任何方法来做这件事。我正在使用Python3。 我对python MySQL绝对是新手。我对PHP中的MySQL真的很熟悉。 您可以使用来实现。但是,出于我的好奇:有没有方法直接使用pymysql来实现它?

  • 因此,我需要能够从数据库中返回大量数据以进行图形化。目前,我正在通过ajax使用GET,并通过php简单地生成必要的html。这对于少量数据很有效,但是每当我请求超过大约一年的数据时,我就会出现错误414。有人有更好的方法的建议吗,或者知道如何更改限制?谢谢。

  • 我正在尝试使用flume从Twitter API流传输一些数据。代码最初确实有效。但是现在我得到了404错误: 下面是我的conf文件代码。

  • 我想在div中包装每三个 元素,我做到了。现在,我想计算一下包装的div中是否有少于3个 ,如果少于3,则追加 ,这是我到目前为止的代码,我不知道为什么它不起作用: 我想要的只是添加 来填充剩余的空间,如果孩子的数量少于三个。

  • 导入java.util.Scanner;公共类GroupActivity{公共静态void main()

  • 这是我现在的代码。 我的同事使用Java流API编写了非常好的代码。我试图将其重写为一个流语句,但我被卡住了。 我该怎么做?理想情况下,我想要一个单一的流媒体声明。。。