Documentation ¶
Overview ¶
用于注册算子,并提供创建对象的接口
Index ¶
- func Dep[T any](gdep *GraphDep) *T
- func Emit[T any](gdata *GraphData) *T
- func EmitDep[T any](gdata *GraphData, gdep *GraphDep) *T
- func Register[T any]()
- func RegisterClass(name string, fac_func func() GraphOperator) error
- type GraphConfig
- type GraphContext
- type GraphData
- type GraphDep
- type GraphEngine
- type GraphNodeConfig
- type GraphOperator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterClass ¶
func RegisterClass(name string, fac_func func() GraphOperator) error
注册一个类型 Deprecated,建议外部使用 Register 函数完成注册功能
Types ¶
type GraphConfig ¶
type GraphConfig struct { Name string `json:"name"` TypeName string `json:"type"` Include []string `json:"include"` PoolSize int `json:"pool_size"` NumThreads int `json:"num_threads"` Nodes []GraphNodeConfig `json:"nodes"` }
整图结构的配置
func LoadGraphConfig ¶
func LoadGraphConfig(configJson string) (*GraphConfig, error)
载入关于图结构信息描述的json文件
type GraphContext ¶
type GraphContext struct { InputData interface{} OutputData interface{} Busy bool // ctx是否处于繁忙的标志 Id int // ctx在缓冲池中的Id ReqId uint64 // 每次请求尽量使用不同的ReqId,便于日志查询 // contains filtered or unexported fields }
func (*GraphContext) NameDepend ¶
func (ctx *GraphContext) NameDepend(name string) *GraphDep
用于创建依赖数据的对象
func (*GraphContext) NameEmit ¶
func (ctx *GraphContext) NameEmit(name string) *GraphData
用于创建发布数据的对象
type GraphData ¶
** 用于管理节点发布的数据
func GetGraphDataByName ¶
func GetGraphDataByName(ctx *GraphContext, config *GraphNodeConfig, name string) *GraphData
用于SetUp函数中创建GraphData
type GraphDep ¶
** 用于管理节点依赖的数据
func GetGraphDependByName ¶
func GetGraphDependByName(ctx *GraphContext, config *GraphNodeConfig, name string) *GraphDep
用于SetUp函数中创建GraphDep
func (*GraphDep) SetMutable ¶
func (gdep *GraphDep) SetMutable()
type GraphEngine ¶
type GraphEngine struct {
// contains filtered or unexported fields
}
func (*GraphEngine) Process ¶
func (ge *GraphEngine) Process(inputData interface{}, reqId uint64) (interface{}, error)
用于执行一次处理任务 inputData可以在输入节点强制转换为对应结构 reqId用于标识每次处理,最好保证互异
type GraphNodeConfig ¶
type GraphNodeConfig struct { Name string `json:"name"` NodeType string `json:"type"` Emitters map[string]string `json:"emitters"` Depends map[string]string `json:"depends"` Config map[string]string `json:"config"` }
节点配置
type GraphOperator ¶
type GraphOperator interface { // 设置并记录节点的config信息 SetConfig(config *GraphNodeConfig) error // 建立图结构,主要用于创建依赖和发布的数据结构,只在创建时执行一次 SetUp(ctx *GraphContext) error // 初始化操作,一般用于设置初始化参数,只在创建时执行一次 Initailize(ctx *GraphContext) error // 执行任务,业务逻辑主要封装在这个函数,每次都会执行 Process(ctx *GraphContext) error }
所有节点都需要实现的基础接口
Click to show internal directories.
Click to hide internal directories.