当前位置: 首页 > news >正文

Go语言实现长连接并发框架 - 路由分组

文章目录

  • 前言
  • 接口
  • 结构体
  • 接口实现
  • 项目地址
  • 最后

前言

你好,我是醉墨居士,我们上篇博客实现了任务执行流的路由模块,接下来我们实现一下对任务执行流进行任务

接口

trait/router_group.go

type RouterGroup interface {RouterGroup(flow ...TaskFunc) RouterGroupUse(flow ...TaskFunc)
}

结构体

gcore/router_group.go

// RouterGroup 路由组
type RouterGroup struct {trait.RouterbaseTaskFlow trait.TaskFlow
}// NewRouterGroup 创建路由组
func NewRouterGroup(engine trait.Router) trait.RouterGroup {return &RouterGroup{Router:   NewRouter(),baseTaskFlow: NewTaskFlow(),}
}

接口实现

gcore/router_group.go

// Group 子路由组
func (g *RouterGroup) Group(flow ...trait.TaskFunc) trait.RouterGroup {group := &RouterGroup{Router:   g.Router,baseTaskFlow: g.baseTaskFlow.Append(flow...),}return group
}// Use 注册插件
func (g *RouterGroup) Use(flow ...trait.TaskFunc) {g.baseTaskFlow = g.baseTaskFlow.Append(flow...)
}// Regist 注册任务执行逻辑
func (g *RouterGroup) Regist(id uint16, flow ...trait.TaskFunc) {g.Router.Regist(id, g.baseTaskFlow.Append(flow...).Funcs()...)
}// RegistFlow 注册任务执行流
func (g *RouterGroup) RegistFlow(id uint16, flow trait.TaskFlow) {g.Router.RegistFlow(id, flow)
}

项目地址

Github:https://github.com/zm50/gte
Giee:https://gitee.com/zm50/gte

最后

我是醉墨居士,我们这篇博客完成了路由分组的代码实现

http://www.lryc.cn/news/455171.html

相关文章:

  • 跨 VLAN 通信
  • 11.4 Linux_线程_条件变量
  • 通信工程学习:什么是IP网际协议
  • github 国内文件加速下载
  • 算法6:模拟运算
  • 【网络协议大花园】应用层 http协议的使用小技巧,用好了都不用加班,效率翻两倍(上篇)
  • 今日指数day8实战补充(上)
  • Python 之进阶语法:with...as...
  • 嵌入式硬件设计知识详解
  • 计算机网络:物理层 —— 信道及其极限容量
  • 面向对象特性中 继承详解
  • C++ | Leetcode C++题解之第455题分发饼干
  • java版基于Spring Boot + Mybatis在线招投标|评标|竞标|单一采购|询价|邀标|在线开标|招标公告发布|评审专家|招投标采购系统源码
  • Anaconda的安装与环境设置
  • 使用FastAPI做人工智能后端服务器时,接口内的操作不是异步操作的解决方案
  • Leetcode 3312. Sorted GCD Pair Queries
  • 用 Delphi 做了一个简单的 CMS
  • ASK, PSK, FSK, DPSK
  • 【Linux】认识Linux内核中进程级别的文件结构体【files_struct】&文件IO模型初步演示
  • [Offsec Lab] ICMP Monitorr-RCE+hping3权限提升
  • Studying-多线程学习Part4 - 异步并发——async future、packaged_task、promise
  • 【Java基础】用Scanner类获取控制台输入
  • 微服务seata解析部署使用全流程
  • Linux性能调优技巧
  • python 实现sha1算法
  • ejb-ref元素
  • Perl 子程序(函数)
  • ElasticSearch 备考 -- Snapshot Restore
  • 【Linux】进程替换、命令行参数及环境变量(超详解)
  • MySQL事务日志—redo日志介绍