如何搭建服务器做网站,wordpress多个标签,php wordpress 框架,深圳商城网站公司文章目录 前言接口结构体接口实现项目地址最后 前言
你好#xff0c;我是醉墨居士#xff0c;上篇博客中我们实现了任务执行流上下文部分#xff0c;接下来我们实现一下任务执行流的路由模块#xff0c;基于该模块可以实现将消息转发到相应注册的任务执行流中进行处理
接… 文章目录 前言接口结构体接口实现项目地址最后 前言
你好我是醉墨居士上篇博客中我们实现了任务执行流上下文部分接下来我们实现一下任务执行流的路由模块基于该模块可以实现将消息转发到相应注册的任务执行流中进行处理
接口
trait/router.go
type Router interface {Regist(id uint16, flow ...TaskFunc)RegistFlow(id uint16, flow TaskFlow)TaskFlow(id uint16) TaskFlow
}结构体
gcore/router.go
// Router 任务执行流路由器
type Router struct {apis map[uint16]trait.TaskFlow
}// NewRouter 创建一个新的任务流路由器
func NewRouter() trait.Router {return Router{apis: make(map[uint16]trait.TaskFlow),}
}接口实现
gcore/router.go
// Regist 注册任务执行逻辑
func (r *Router) Regist(id uint16, flow ...trait.TaskFunc) {if _, ok : r.apis[id]; ok {r.apis[id].Extend(flow...)} else {r.apis[id] NewTaskFlow(flow...)}
}// RegistFlow 注册一个任务执行执行流
func (r *Router) RegistFlow(id uint16, flow trait.TaskFlow) {r.apis[id] flow
}// TaskFlow 根据消息ID获取任务执行流
func (r *Router) TaskFlow(id uint16) trait.TaskFlow {return r.apis[id]
}项目地址
Githubhttps://github.com/zm50/gte Gieehttps://gitee.com/zm50/gte
最后
我是醉墨居士我们这篇博客完成了任务执行流路由模块的代码实现