0
点赞
收藏
分享

微信扫一扫

lazy-flow(4)

NicoalsNC 2023-11-19 阅读 38

网关流转的幂等性问题。举个例子:

  • 一个简单的网关,满足条件走A线,不满足走B线。 已知,走A的候选人 和 走B的候选人不一样,候选人都涉及多位,需要当前审核人自行选一个。
  • 假设审核人基于当前网关判断走A,所以从A的相关候选人中选了一个。
  • 但提交完成的处理过程中,网关的判定结果发生了变化,也即是按理要走B线了。
  • 上述状况,如果用户没有进行轨迹的复核,就可能发生目标节点和候选人不匹配的问题。
  • 上述的复核不能简单复核终点是否一致,原因可以结合连续网关来思考,轨迹相同和终点相同的区别。
  • 本引擎中,针对此问题的处理没有采用复核的方式。而是在获取候选人清单时记录下了途径的轨迹,提交完成时完全按照此轨迹来流转,而不再涉及网关的判断。


网关配置:

  • 约定了网关判定方法配置在节点上,而非线上。
  • 网关的通行条件配置在线上,例如网关方法返回值 a,则会从本网关的配置了流转条件为 a 的线走。
  • 网关判断的终点是遇到普通节点或end节点,所以如果是连续网关,会连续判断。
  • “为什么网关的‘进线’不允许配置‘同步回调’”?
  • 同步回调发生错误时,按理流程事务要回滚。但是如果网关的进线和出线都配置了同步回调,则网关自动流转的过程中势必会触发不止一个回调,也就无法兼顾事务性。
举报

相关推荐

0 条评论