taskflow
taskflow copied to clipboard
taskflow是一款轻量、简单易用、可灵活扩展的通用任务编排框架,基于有向无环图(DAG)的方式实现,框架提供了组件复用、同步/异步编排、条件判断、分支选择等能力,可以根据不同的业务场景对任意的业务流程进行编排
1:源码 //OP监听器--成功 if (wrapper.getListener(OperatorEventEnum.SUCCESS) != null) { wrapper.getListener(OperatorEventEnum.SUCCESS).forEach(t -> ((OperatorListener)t).onEvent(wrapper, OperatorEventEnum.SUCCESS)); } wrapper.getOperatorResult().setResult(operatorResult); 2:修改后 wrapper.getOperatorResult().setResult(operatorResult); //OP监听器--成功 if (wrapper.getListener(OperatorEventEnum.SUCCESS) != null) { wrapper.getListener(OperatorEventEnum.SUCCESS).forEach(t -> ((OperatorListener)t).onEvent(wrapper, OperatorEventEnum.SUCCESS)); }
循环节点
循环节点应该如何编排?
**我的场景** 希望能从请求参数和前置op获取结果进行参数拼装,然后通过泛化调用rpc来完成服务编排 TaskFlow框架支持的是按照特定的jsonpath获取参数,然后执行代理对象  请问有这种参数映射能力么,把多个jsonpath获取得到的结果组成一个特定的json结构,比如task.ob[].book,然后把这个json作为入参传递给泛化的rpc完成调用
有这样一种场景,  结点2和结点3都依赖结点1的前置结果,目前的解析方式,会把结点的结果解析两次(解析成Json,然后通过jsonpath获取参数)。是否需要把每个结点的jsonpath记录下来,减少解析次数
目前项目打算用来做任务节点得编排 相当于有很多子节点 编排子节点 为业务节点 供上层快速使用 但是有些节点得入参依赖 别的节点得执行结果 目前看示例是基于jsonPath解析入参 反射调用节点方法 但是和 IOperator 基础接口基本没关联 写了一个小demo实现了 不破坏现有IOperator 接口得实现 首先还是依赖原有得addParamFromWrapperId 增加属性paramParseConfig  具体属性如下  在DagEngine 得parseOperatorParam 在做一层解析  反射调用封装参数得方法 我这边采用了mapstruct 做参数封装 反射得化也可以换成别的方法 示例如下 ...