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

最后

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

相关推荐
前端中后台5 小时前
如何防止短信验证码接口被盗刷
后端
SpiderPex5 小时前
论MyBatis和JPA权威性
java·mybatis
future_studio5 小时前
聊聊 Unity(小白专享、C# 小程序 之 加密存储)
开发语言·小程序·c#
我狸才不是赔钱货5 小时前
容器:软件世界的标准集装箱
linux·运维·c++·docker·容器
云知谷5 小时前
【嵌入式基本功】单片机嵌入式学习路线
linux·c语言·c++·单片机·嵌入式硬件
小猪咪piggy5 小时前
【微服务】(1) Spring Cloud 概述
java·spring cloud·微服务
lkbhua莱克瓦245 小时前
Java基础——面向对象进阶复习知识点8
java·笔记·github·学习方法
m0_736927045 小时前
Spring Boot自动配置与“约定大于配置“机制详解
java·开发语言·后端·spring
Bacon5 小时前
前端:从0-1实现一个脚手架
前端
Bacon5 小时前
前端项目部署实战 nginx+docker持续集成
前端