V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nthin0
V2EX  ›  Java

有大佬研究过 spring-statemachine 吗,请教一下如何查历史状态

  •  
  •   nthin0 · 2021-03-30 10:58:29 +08:00 · 1948 次点击
    这是一个创建于 1359 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 背景:鉴于高度定制化工作流的需求,用 activiti 有一定局限性,最近在调研 spring-statemachine 能否满足业务需求。

    • 问题:我理解状态机作为系统里的三方组件,应该是至少需要提供流程开始、事件处理、查询当前状态、查询历史状态的接口的,目前在文档里找到了 history 的伪状态,感觉跟我理解的历史状态不一样,而且配置了 history 状态测试的时候将状态机持久化到 redis 一直报错。

    • 疑问:难道需要单独建一张表用来保存历史状态?那跟业务不是耦合的很严重吗。我只想把状态机作为一个公共组件实现流程流转,能在不写额外代码和建表的情况下查到当前状态和历史状态。。。

    3 条回复    2021-03-31 08:40:13 +08:00
    hantsy
        1
    hantsy  
       2021-03-30 11:29:58 +08:00
    Spring StateMachine 状态存储的实现有多种(我觉得自己实现一种存储不难), 官方有一种用法与 ZK 结合实现微服务 Saga 模式的。

    另外 Camunda 是目前比较流行基于云的工作流引擎,除了支持标准 BPEL,一个主要应用就是实现微服务 Saga,用工作来定义 Compensation 机制。
    zhenjiachen
        2
    zhenjiachen  
       2021-03-30 23:38:52 +08:00 via iPhone
    我之前也准备在项目里面集成,就几个状态发现还不如 if 。如果楼主成功可以写个教程出来
    tedzhou1221
        3
    tedzhou1221  
       2021-03-31 08:40:13 +08:00 via iPhone
    #1 提到 Camunda, Camunda 还有 zeebe
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4193 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:14 · PVG 18:14 · LAX 02:14 · JFK 05:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.