ytyht226/taskflow

关于wrapper配置了condition的触发条件

zhiding opened this issue · 1 comments

如果condition.judge()返回是false,应该直接return?为什么还要再特别判断一下前驱节点的状态呢?

https://github.com/ytyht226/taskflow/blob/87186bfc43bf84f64938bc50c3bd498156ab6ea0/taskflow-core/src/main/java/org/taskflow/core/DagEngine.java#L357C33-L357C33

如果condition.judge()返回是false,应该直接return?为什么还要再特别判断一下前驱节点的状态呢?

https://github.com/ytyht226/taskflow/blob/87186bfc43bf84f64938bc50c3bd498156ab6ea0/taskflow-core/src/main/java/org/taskflow/core/DagEngine.java#L357C33-L357C33

image
如图所示,如果节点4依赖的节点1、2、3都执行完时,即使还没有满足准入条件,也是需要执行节点4的;"准入条件判断"的语义是在不满足执行条件时 等待其它前驱节点执行完,可以让执行节点时的入参更充分,本身是不会主动中断的;如果想在所有的前驱节点都执行完并且还不满足条件的情况下中断后续流程,可以在条件判断的方法中 主动中断: wrapper.getEngine().stopAt(wrapper)