1 Star 0 Fork 0

丁杨庄/dgoflow

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
exporter.go 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
13950056074 提交于 2024-08-15 14:58 +08:00 . 修改
package exporter
import (
"fmt"
sdk "gitee.com/dingyangzhuang/dgoflow/core/sdk"
)
// Exporter
type Exporter interface {
// GetFlowName get nbame of the flow
GetFlowName() string
// GetFlowDefinition get definition of the faas-flow
GetFlowDefinition(*sdk.Pipeline, *sdk.Context) error
}
// FlowExporter core exporter
type FlowExporter struct {
flow *sdk.Pipeline
flowName string
exporter Exporter // exporter
}
// createContext create a context from request handler
func (fexp *FlowExporter) createContext() *sdk.Context {
context := sdk.CreateContext("export", "",
fexp.flowName, nil)
return context
}
// Export retrieve core definition
func (fexp *FlowExporter) Export() ([]byte, error) {
// Init flow
fexp.flow = sdk.CreatePipeline()
fexp.flowName = fexp.exporter.GetFlowName()
context := fexp.createContext()
// Get definition: Get Pipeline definition from user implemented Define()
err := fexp.exporter.GetFlowDefinition(fexp.flow, context)
if err != nil {
return nil, fmt.Errorf("Failed to define flow, %v", err)
}
// Get DAG json definition
definition, _ := fexp.flow.Dag.GetDefinitionJson()
return definition, nil
}
// CreateFlowExporter initiate a FlowExporter with a provided Executor
func CreateFlowExporter(exporter Exporter) (fexp *FlowExporter) {
fexp = &FlowExporter{}
fexp.exporter = exporter
return fexp
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dingyangzhuang/dgoflow.git
git@gitee.com:dingyangzhuang/dgoflow.git
dingyangzhuang
dgoflow
dgoflow
v0.0.5

搜索帮助