# 1.1.16 版本发布
- 适配SpringBoot3.2+版本
- 升级JSR303检验使用方式,适配
jakarta
包下组件 - 增加
kstry.story.max-cycle-count
配置参数,限制环路流程循环的最大次数,默认:Long.MAX_VALUE - 支持Spring框架中的
NamedThreadLocal
在线程切换时的静默透传
# 1.1.15 版本发布
- 流程配置支持回环链路
- 提供默认限流器并支持定制化,支持服务节点限流功能
- 服务节点支持返回Optional对象
- 服务节点支持配置降级表达式,执行异常时可执行降级方法
- 服务节点、子流程支持配置条件表达式,用以控制是否直接跳过当前节点或流程继续向下执行
- 提供TrackingBeginEvent、TrackingFinishEvent两个Spring容器事件,用来监听节点执行前后的日志对象,可以通过订阅Spring事件的方式使用
# 1.1.14 版本发布
- 解决服务节点返回Mono类型时重试次数不生效问题
# 1.1.13 版本发布
- 支持虚拟线程,使用JDK21+时,可以使用
kstry.thread.open-virtual
参数开启虚拟线程 - 服务节点、排他网关支持多入度
# 1.1.12 版本发布
- 更好的支持http服务节点编排
# 1.1.11 版本发布
- 解决部分server下KstryThreadLocal无法生效问题
# 1.1.10 版本发布
- 流程支持从之间节点开始执行
- 升级
task-params
方便微服务编排入参 - 网关支持设置服务节点参数,方便规则判断、微服务动态判断等使用场景直接使用指令进行服务调用
- 新增JSONPath支持,可以使用$前缀在StoryBus中更灵活的获取参数
- 新增KstryThreadLocal在满足原生ThreadLocal使用场景的前提下,可以保证在Kstry框架中进行线程切换时ThreadLocal值不丢失
# 1.1.9 版本发布
- NoticeXxx、XxxTaskField、XxxTaskParam系列注解的字段名称由
String
改为String[]
,支持多级字段定义比如:good.base.id
- 新增ScopeDataNotice组件,可以作为服务节点方法的返回值,用来指定需要通知到sta、var、res域的数据
# 1.1.8 版本发布
- 字段与StoryBus交互、task-params参数读取等场景增加类型转换功能
- 流程配置台:http://kstry.cn/modeler/ (opens new window)
# 1.1.7 版本发布
- 流程校验规则优化
- 日志内容优化
# 1.1.6 版本发布
@TaskService
注解增加@Iterator
属性定义服务节点遍历相关参数- 新增
IterDataItem
对象提供获取遍历项及索引字段功能。节点遍历时,如果该类型在服务节点方法入参中被定义会自动注入 - 节点遍历时,支持节点方法直接返回某遍历项处理后的结果(批量遍历需要返回list),支持Mono类型返回值,无论是否并发聚合后的遍历处理结果与遍历集合数据项顺序一致
StoryEngine
新增serialize
方法,该方法可以将容器中生效的流程序列化成json字符串,序列化后的Json字符串可直接解析成流程执行,与原流程无异- 新增
JsonProcessParser
组件,提供Json转可执行流程的功能。任何协议的图形文件只要转化成符合规范的Json都可被解析执行 - 提供重新实现
SerializeTracking
功能的入口,可用来自定义MonitorTracking
追踪的各节点出入参的解析规则,避免大对象序列化成Json时导致的资源占用过多问题
# 1.1.5 版本发布
- 优化服务节点仅实现
ParamLifecycle
接口时没有被初始化问题 - 优化Exp工具类支持自定义条件表达式函数
# 1.1.4 版本发布
@Invoke
注解支持executor
属性。用来使用名称从Spring容器中获取ThreadPoolExecutor
实例,以此作为执行当前服务节点的执行器。如果指定但未从Spring中获取到执行器就会报错ReqBuilder支持指定
ThreadPoolExecutor
实例,作为当前任务的执行器流程配置中的服务节点支持设置
task-params
来指定节点执行时的入参,指定入参获取方式会覆盖原来注解获取参数实现
ExpressionAliasRegister
注解,自定义条件表达式中的函数,可参考:BasicExpressionAliasRegister
提供
SpringParamLifecycle
注解,提供了服务节点入参初始化时获取Spring上下文的方式提供
Exp
工具类,用以组装流程定义中的条件表达式
# 1.1.3 版本发布
@Invoke
注解增加retryIncludeExp/retryExcludeExp
属性,指定包含/不包含某些异常时,执行重试- 流程条件表达式支持
o{数字}: 表达式
(比如:o1: sta.name != null
),来定义多支路时的执行顺序,未指定顺序时表达式默认为最低优先级 - 流程配置中未指定节点名称时,尝试获取
@TaskService
注解的desc
属性作为name
# 1.1.2 版本发布
- TaskComponent、TaskService 注解name变为非必填字段,默认会分别取类名、方法名首字母小写作为组件和服务节点名称
- 异常情况日志提示优化
- 支持使用Lambda表达式定义流程
# 1.1.1 版本发布
- 解决服务节点集成或实现泛型方法时启动失败问题
# 1.1.0 版本发布
新增功能:
- 主流程、子流程、角色、变量支持动态获取
- 提供线程切换钩子
ThreadSwitchHook
,线程切换时传递数据 - 提供自定义指令,脚本节点功能
- 提供服务节点拦截器功能
与1.0.x版本不兼容地方:
ParamLifecycle
接口的before
、after
方法增加ScopeDataOperator
入参@TaskService
注解去掉targetType
属性,该属性原本是当返回值是Mono时用来指定泛型类型的,新版本已可以自动解析BpmnLik
更名为ProcessLisk
用来定义主流程@CustomRole
注解从修饰类改成修饰方法,使用更加灵活
# 1.0.11 版本发布
- 日志、监控工具优化
- 流程定义中的服务节点支持分别自定义参数
- 条件表达式解析策略优化
# 1.0.10 版本发布
- 提供代码定义流程图方式 定义演示 (opens new window)
- 降级方法不再要求与目标方法有相同的出入参
- 流程中定义的非允许为空的服务节点如果没有被实现,会在启动时报错(之前版本是在执行期间报错)
# 1.0.9 版本发布
- POM依赖调整
- 表达式 result 取值,改成 res
- 日志信息优化
- BusinessException业务异常信息补充
# 1.0.8 版本发布
- 支持指定StoryBus中的集合资源,在服务节点、子任务维度对集合中的每一项进行遍历执行
- 使用详情 (opens new window)
# 1.0.7 版本发布
- 继承场景中,支持仅扫描子类服务节点用以提供服务,不扫描父类中的服务节点
- 细节点优化
- 日志、错误码优化
- 解决服务节点返回基本数据类型异常问题
# 1.0.6 版本发布
升级如下:
- 服务节点执行支持定义超时时间、重试次数、失败降级
- 子流程支持定义超时时间。可以定义拦截器,在子流程执行前、执行后、执行异常、最终一定执行四个阶段进行自定义操作
- 子流程支持非严格模式,非严格模式下的子流程出现超时或异常时仅会中断子流程,外围流程会继续
- 服务节点入参支持定义 ScopeDataOperator,可通过该对象读取、写入StoryBus中保存的变量