网关流转的幂等性问题。举个例子:
- 一个简单的网关,满足条件走A线,不满足走B线。 已知,走A的候选人 和 走B的候选人不一样,候选人都涉及多位,需要当前审核人自行选一个。
- 假设审核人基于当前网关判断走A,所以从A的相关候选人中选了一个。
- 但提交完成的处理过程中,网关的判定结果发生了变化,也即是按理要走B线了。
- 上述状况,如果用户没有进行轨迹的复核,就可能发生目标节点和候选人不匹配的问题。
- 上述的复核不能简单复核终点是否一致,原因可以结合连续网关来思考,轨迹相同和终点相同的区别。
- 本引擎中,针对此问题的处理没有采用复核的方式。而是在获取候选人清单时记录下了途径的轨迹,提交完成时完全按照此轨迹来流转,而不再涉及网关的判断。
网关配置:
- 约定了网关判定方法配置在节点上,而非线上。
- 网关的通行条件配置在线上,例如网关方法返回值 a,则会从本网关的配置了流转条件为 a 的线走。
- 网关判断的终点是遇到普通节点或end节点,所以如果是连续网关,会连续判断。
- “为什么网关的‘进线’不允许配置‘同步回调’”?
标签:lazy,流转,配置,flow,网关,节点,复核,候选人 From: https://blog.51cto.com/u_16203447/8472558
- 同步回调发生错误时,按理流程事务要回滚。但是如果网关的进线和出线都配置了同步回调,则网关自动流转的过程中势必会触发不止一个回调,也就无法兼顾事务性。