From abda608f60a232ab38f832cb360e62179c171556 Mon Sep 17 00:00:00 2001 From: aceld Date: Sun, 31 Dec 2023 10:50:01 +0800 Subject: [PATCH] kisFlowConfig init --- common/const.go | 10 +++++++++ example/kisflow_test.go | 24 ++++++++++++++++++++ flow/kis_config/kis_flow_config.go | 35 ++++++++++++++++++++++++++++++ flow/kis_config/kis_func_config.go | 2 +- 4 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 flow/kis_config/kis_flow_config.go diff --git a/common/const.go b/common/const.go index 737f343..ba0a412 100644 --- a/common/const.go +++ b/common/const.go @@ -18,3 +18,13 @@ const ( // E 为扩展特征的KisFunction,作为流式计算的自定义特征Function,如,Notify 调度器触发任务的消息发送,删除一些数据,重置状态等。 E KisMode = "Expand" ) + +/* + 是否启动Flow +*/ +type KisOnOff int + +const ( + FlowEnable KisOnOff = 1 // 启动 + FlowDisable KisOnOff = 0 // 不启动 +) diff --git a/example/kisflow_test.go b/example/kisflow_test.go index 6d1ad25..fdb4879 100644 --- a/example/kisflow_test.go +++ b/example/kisflow_test.go @@ -6,6 +6,30 @@ import ( "testing" ) +func TestNewFlowConfig(t *testing.T) { + + flowFuncParams1 := flow.KisFlowFunctionParam{ + Fid: "funcId1", + Params: flow.FParam{ + "flowSetFunParam1": "value1", + "flowSetFunParam2": "value2", + }, + } + + flowFuncParams2 := flow.KisFlowFunctionParam{ + Fid: "funcId2", + Params: flow.FParam{ + "default": "value1", + }, + } + + myFlow1 := flow.NewFlowConfig("flowId", "flowName", 1) + myFlow1.AppendFunctionConfig(flowFuncParams1) + myFlow1.AppendFunctionConfig(flowFuncParams2) + + fmt.Printf("myFlow1: %+v\n", myFlow1) +} + func TestNewFuncConfig(t *testing.T) { source := flow.KisSource{ Name: "公众号抖音商城户订单数据", diff --git a/flow/kis_config/kis_flow_config.go b/flow/kis_config/kis_flow_config.go new file mode 100644 index 0000000..e74f443 --- /dev/null +++ b/flow/kis_config/kis_flow_config.go @@ -0,0 +1,35 @@ +package flow + +import "kis-flow/common" + +// KisFlowFunctionParam 一个Flow配置中Function的Id及携带固定配置参数 +type KisFlowFunctionParam struct { + Fid string `yaml:"fid"` //必须 + Params FParam `yaml:"params"` //选填,在当前Flow中Function定制固定配置参数 +} + +// KisFlowConfig 用户贯穿整条流式计算上下文环境的对象 +type KisFlowConfig struct { + KisType string `yaml:"kistype"` + FlowId string `yaml:"flow_id"` + Status int `yaml:"status"` + FlowName string `yaml:"flow_name"` + Flows []KisFlowFunctionParam `yaml:"flows"` +} + +// NewFlowConfig 创建一个Flow策略配置对象, 用于描述一个KisFlow信息 +func NewFlowConfig(flowId string, flowName string, enable common.KisOnOff) *KisFlowConfig { + config := new(KisFlowConfig) + config.FlowId = flowId + config.FlowName = flowName + config.Flows = make([]KisFlowFunctionParam, 0) + + config.Status = int(enable) + + return config +} + +// AppendFunctionConfig 添加一个Function Config 到当前Flow中 +func (fConfig *KisFlowConfig) AppendFunctionConfig(params KisFlowFunctionParam) { + fConfig.Flows = append(fConfig.Flows, params) +} diff --git a/flow/kis_config/kis_func_config.go b/flow/kis_config/kis_func_config.go index 3936722..e68e1e0 100644 --- a/flow/kis_config/kis_func_config.go +++ b/flow/kis_config/kis_func_config.go @@ -22,7 +22,7 @@ type KisFuncOption struct { Params FParam `yaml:"default_params"` //选填,在当前Flow中Function定制固定配置参数 } -// KisFuncConfig 一个NsFunction策略配置 +// KisFuncConfig 一个KisFunction策略配置 type KisFuncConfig struct { KisType string `yaml:"kistype"` Fid string `yaml:"fid"`