gin中间件中使用Goroutines
gin中间件中使用Goroutines
在中间件或处理程序中启动新的Goroutines时,你不应该使用其中的原始上下文,你必须使用只读副本(c.Copy()
)
func main() {r := gin.Default()r.GET("/long_async", func(c *gin.Context) {// 创建要在goroutine中使用的副本cCp := c.Copy()go func() {// simulate a long task with time.Sleep(). 5 secondstime.Sleep(5 * time.Second)// 这里使用你创建的副本log.Println("Done! in path " + cCp.Request.URL.Path)}()})r.GET("/long_sync", func(c *gin.Context) {// simulate a long task with time.Sleep(). 5 secondstime.Sleep(5 * time.Second)// 这里没有使用goroutine,所以不用使用副本log.Println("Done! in path " + c.Request.URL.Path)})// Listen and serve on 0.0.0.0:8080r.Run(":8080")
}
gin中间件中使用Goroutines相关推荐
- go语言 gin框架中集成zap日志库
在go语言gin框架中,日志是默认输出到终端的,但是我们在实际工作中,一般来说是需要记录服务器日志的.而最常用的日志库就是zap日志库,我们需要将gin在终端输出的内容通过zap日志库记录到文件中,首 ...
- 中间件中渲染Razor视图
前言 上一篇文章<ASP.NET Core 奇技淫巧(1):中间件实现服务端静态化缓存>中介绍了中间件的使用方法.以及使用中间件实现服务端静态化缓存的功能.本系列文章取名"奇技淫 ...
- thinkphp5 判断数据是否存在_ThinkPHP 5.1 中间件中判断要访问的操作是否存在
ThinkPHP 5.1 中间件中判断要访问的操作是否存在 ifu25 • 2021 年 01 月 15 日 按惯例还是吐槽 ThinkPHP 官方社区极度不友好,提问基本得不到答案,更很少有官方人员 ...
- laravel 中间件中返回视图
不知何故,laravel 构造函数中不能使用return 返回视图,故在中间件中使用. <?phpnamespace App\Http\Middleware;use App\Models\Set ...
- Golang程序性能分析(二)在Echo和Gin框架中使用pprof
前言 今天继续分享使用Go官方库pprof做性能分析相关的内容,上一篇文章:Golang程序性能分析(一)pprof和go-torch中我花了很大的篇幅介绍了如何使用pprof采集Go应用程序的性能指 ...
- ASP.NET Core Web API/MVC应用中间件中的Cookie记录
目录 介绍 背景 Cookie身份验证事件 Cookie记录中间件 预防措施 结论 介绍 有时,我们必须在开发站点或生产站点中登录Cookie以进行调试.我们有过这样的情况. 背景 在我们为Andro ...
- Gin框架中的Bind函数
Bind函数 type Binding interface {Name() stringBind(*http.Request, interface{}) error } Binding 是一个接口,在 ...
- 如何将报表服务部署到金蝶中间件中
1. 获取润乾的应用包 demo(此应用包可从设计器安装目录-\report5\web\webapps 下获取) 放到金蝶的-\AAS-V9.0\domains\mydomain\applicatio ...
- php closure laravel,laravel中间件中的Closure $next是什么意思
public function handle($request, Closure $next) { if ($request->input('age') < 200) { return r ...
最新文章
- java数据类型相互转换工具类
- web开发下的各种下载方法
- 强化学习(五)---基于模型的强化学习实战
- jsp页面textarea中换行替换问题
- 谈谈dpdk应用层包处理程序的多进程和多线程模型选择时的若干考虑
- c语言函数调用排序用插入法,C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法,插入排序)...
- 吴恩达机器学习 逻辑回归 作业3(手写数字分类) Python实现 代码详细解释
- 在后台增加一个查询条件
- 计算机网络之万维网WWW
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_3 Mybatis的CRUD-修改和删除操作
- mysql blob 字段,mysql BLOB字段类型用法介绍
- 小型数控雕刻机制作Arduino_微型CNC制作基于开源项目GRBL
- Linux自学day2
- MATLAB环境下基于深度学习的语音降噪方法
- c语言析构函数的作用,详解析构函数出现的必要性
- 业余草双因素认证(2FA)教程
- 华为css与堆叠,FAQ-S7706交换机CSS堆叠连接的线缆是否正确
- java应届生如何找工作?
- OracleLinux 6.4挂载NTFS盘的方法
- java实现第七届蓝桥杯四平方和