【发布时间】:2025-12-02 03:10:01
【问题描述】:
请帮我处理反应堆 我需要最多检查一个条件 n 次并返回最终结果
我发现reactor有reactor-extra模块
https://projectreactor.io/docs/extra/snapshot/api/reactor/retry/Repeat.html
它有结构
Repeat.create(java.util.function.Predicate<? super RepeatContext<T>> predicate, long n)
仅当谓词返回 true 时重复 n 次的重复函数。
看起来是正确的解决方案,但我不明白应该在哪里
那个动作,我想重复吗?
我有很多动作的 Flux,但我只想重复一个
请做一个代码示例
谢谢
private int culculateNextResult(some params) {
// some implementation
}
private Boolean compareResults(int prevRes, int nextRes) {
// some implementation
}
public Flux<Boolean> run(some params, Flux<Integer> prevResults){
return prevResults.map(elem -> compareResults(elem, culculateNextResult(some params)));
// THIS LOGIC SHOULD BE REPEATED N times if compareResults(elem,
// culculateNextResult(some params))) == false, if true, we don't need
// to repeat
}
我想重复 compareResults(elem, culculateNextResult(some params))) 直到它是真的。但最大 n 倍并返回 Flux 作为结果
【问题讨论】:
标签: project-reactor