是否可以通过Reactor 3.0以编程方式找到上游发布者?

时间:2018-10-16 20:36:13

标签: project-reactor

给出通量的列表,我想确定列表中哪些位于上游,哪些不在。可以通过各种方式吸引上游发行商来解决问题,但我愿意接受其他建议。

还可以检测通量之间的循环依存关系吗?我只想创建DAG。

1 个答案:

答案 0 :(得分:0)

Scannable界面提供了一种尽力而为的方式(不支持100%):

Flux<T> fluxToCheck;
List<Flux> potentialParents;

Scannable s = Scannable.from(fluxToCheck);
Stream<Scannable> parents = s
    .parents() //this is the important part
    .collect(Collectors.toList());

potentialParents.retainAll(parents);
//or some more efficient other tests on the collections

Scannable#parents()递归查找Scannable并宣传PARENT,我认为大多数Reactor核心操作员都应该这样做。

如果您传递的对象实际上不是Scannable.from(foo),则

Scannable返回NO-OP Scannable