alibaba / bulbasaur

💡 A pluggable, scalable process engine. You can use it to develop business-process, approval-process, retry-process and so on. Hope you enjoy it! 💖 可插拔的精简流程引擎,可快速实现流程、审批、业务失败重试等场景。
Apache License 2.0
752 stars 241 forks source link

如果一个task节点被唤起,同时outgoing节点中配置了repeateList,无法重试outgoing节点 #7

Open DaredevilDA opened 4 years ago

DaredevilDA commented 4 years ago

com/tmall/pokemon/bulbasaur/persist/PersistMachine.java:113 StateLike copyCurrentState = currentState;//currentState 为final,做替身 if (currentState.getOutGoing() != null) { //先complete 之前停掉的 completeState(currentState); // 直接替换 copyCurrentState = run0_findCurrent(currentState.getOutGoing()); //先初始化当前 initNextState(copyCurrentState); }

outgoing中的BizException被算在了task上,这部分异常是不是应该拆开,outgoing节点被唤起,就可以标志task节点执行成功,outgoing节点内产生的BizException要算在outgoing身上

fromcth commented 3 years ago

com/tmall/pokemon/bulbasaur/persist/PersistMachine.java:113 StateLike copyCurrentState = currentState;//currentState 为final,做替身 if (currentState.getOutGoing() != null) { //先complete 之前停掉的 completeState(currentState); // 直接替换 copyCurrentState = run0_findCurrent(currentState.getOutGoing()); //先初始化当前 initNextState(copyCurrentState); }

outgoing中的BizException被算在了task上,这部分异常是不是应该拆开,outgoing节点被唤起,就可以标志task节点执行成功,outgoing节点内产生的BizException要算在outgoing身上

感谢反馈,我翻代码验证一下看