Go语言实现长连接并发框架 - 任务执行流上下文

文章目录

前言

你好,我是醉墨居士,上篇博客中我们实现了任务执行流部分,接下来我们需要对任务执行流的执行流程进行控制,接下来我们要去实现对客户端请求处理的任务上下文。那为什么我需要一个请求处理的任务上下文呢?这是因为我要在后续支持请求可以通过任务流去完成的业务处理,然后我们可以给任务处理流增加任务处理逻辑,完成业务逻辑的拓展,然后后续可以支持任务处理逻辑的插件注册,完成路由分组等等功能

接下来介绍我们这篇博客的主角 - 任务执行流上下文

接口

trait/context.go

go 复制代码
type Context interface {
	Message

	Next()
	Abort()
}

结构体

gcore/context.go

go 复制代码
// Context 任务上下文
type Context struct {
	trait.Request
	
	// 当前执行的任务索引
	taskIdx int
	// 任务执行流
	tasks trait.TaskFlow
}

接口实现

go 复制代码
// Next 执行下一个任务
func (c *Context) Next() {
	c.taskIdx++
	if c.taskIdx < c.tasks.Len() {
		c.tasks.Execute(c.taskIdx, c)
		c.taskIdx++
	}
}

// Abort 中止任务流
func (c *Context) Abort() {
	c.taskIdx = constant.AbortIndex
}

项目地址

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

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

最后

我是醉墨居士,我们这篇博客完成了任务执行流上下文的代码开发,希望让大家有所收获

相关推荐
前端摸鱼匠16 分钟前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
REDcker37 分钟前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js
dllmayday1 小时前
Linux 上用终端连接 WiFi
linux·服务器·windows
ACP广源盛139246256731 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
极客先躯2 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户60648767188962 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java
donecoding2 小时前
一个 sudo 引发的血案:npm 全局包权限错乱彻底修复
前端·node.js·前端工程化
我命由我123452 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime
峥无2 小时前
Linux系统编程基石:静态库·动态库·ELF文件·进程地址空间全景图
linux·运维·服务器
aXin_ya2 小时前
微服务第八天 Sentinel 四种分布式事务模式
java·数据库·微服务