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相关推荐

  1. go语言 gin框架中集成zap日志库

    在go语言gin框架中,日志是默认输出到终端的,但是我们在实际工作中,一般来说是需要记录服务器日志的.而最常用的日志库就是zap日志库,我们需要将gin在终端输出的内容通过zap日志库记录到文件中,首 ...

  2. 中间件中渲染Razor视图

    前言 上一篇文章<ASP.NET Core 奇技淫巧(1):中间件实现服务端静态化缓存>中介绍了中间件的使用方法.以及使用中间件实现服务端静态化缓存的功能.本系列文章取名"奇技淫 ...

  3. thinkphp5 判断数据是否存在_ThinkPHP 5.1 中间件中判断要访问的操作是否存在

    ThinkPHP 5.1 中间件中判断要访问的操作是否存在 ifu25 • 2021 年 01 月 15 日 按惯例还是吐槽 ThinkPHP 官方社区极度不友好,提问基本得不到答案,更很少有官方人员 ...

  4. laravel 中间件中返回视图

    不知何故,laravel 构造函数中不能使用return 返回视图,故在中间件中使用. <?phpnamespace App\Http\Middleware;use App\Models\Set ...

  5. Golang程序性能分析(二)在Echo和Gin框架中使用pprof

    前言 今天继续分享使用Go官方库pprof做性能分析相关的内容,上一篇文章:Golang程序性能分析(一)pprof和go-torch中我花了很大的篇幅介绍了如何使用pprof采集Go应用程序的性能指 ...

  6. ASP.NET Core Web API/MVC应用中间件中的Cookie记录

    目录 介绍 背景 Cookie身份验证事件 Cookie记录中间件 预防措施 结论 介绍 有时,我们必须在开发站点或生产站点中登录Cookie以进行调试.我们有过这样的情况. 背景 在我们为Andro ...

  7. Gin框架中的Bind函数

    Bind函数 type Binding interface {Name() stringBind(*http.Request, interface{}) error } Binding 是一个接口,在 ...

  8. 如何将报表服务部署到金蝶中间件中

    1. 获取润乾的应用包 demo(此应用包可从设计器安装目录-\report5\web\webapps 下获取) 放到金蝶的-\AAS-V9.0\domains\mydomain\applicatio ...

  9. php closure laravel,laravel中间件中的Closure $next是什么意思

    public function handle($request, Closure $next) { if ($request->input('age') < 200) { return r ...

最新文章

  1. java数据类型相互转换工具类
  2. web开发下的各种下载方法
  3. 强化学习(五)---基于模型的强化学习实战
  4. jsp页面textarea中换行替换问题
  5. 谈谈dpdk应用层包处理程序的多进程和多线程模型选择时的若干考虑
  6. c语言函数调用排序用插入法,C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法,插入排序)...
  7. 吴恩达机器学习 逻辑回归 作业3(手写数字分类) Python实现 代码详细解释
  8. 在后台增加一个查询条件
  9. 计算机网络之万维网WWW
  10. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_3 Mybatis的CRUD-修改和删除操作
  11. mysql blob 字段,mysql BLOB字段类型用法介绍
  12. 小型数控雕刻机制作Arduino_微型CNC制作基于开源项目GRBL
  13. Linux自学day2
  14. MATLAB环境下基于深度学习的语音降噪方法
  15. c语言析构函数的作用,详解析构函数出现的必要性
  16. 业余草双因素认证(2FA)教程
  17. 华为css与堆叠,FAQ-S7706交换机CSS堆叠连接的线缆是否正确
  18. java应届生如何找工作?
  19. OracleLinux 6.4挂载NTFS盘的方法
  20. java实现第七届蓝桥杯四平方和

热门文章

  1. 绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来
  2. bzoj 2809 Apio2012 dispatching
  3. ElasticSearch聚合aggs入门
  4. 【iOS】图片缩放动画
  5. Mysql遇到Too many connections的解决办法
  6. 实模式与保护模式详解三:寻址方式
  7. 实现和调用API接口
  8. 新CCIE笔记之'口口相传'路由协议
  9. 关闭PdfReader右侧工具栏的方法
  10. 设计包含min函数的栈