gin中间件中使用Goroutines
生活随笔
收集整理的這篇文章主要介紹了
gin中间件中使用Goroutines
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
gin中間件中使用Goroutines
在中間件或處理程序中啟動(dòng)新的Goroutines時(shí),你不應(yīng)該使用其中的原始上下文,你必須使用只讀副本(c.Copy())
func main() {r := gin.Default()r.GET("/long_async", func(c *gin.Context) {// 創(chuàng)建要在goroutine中使用的副本cCp := c.Copy()go func() {// simulate a long task with time.Sleep(). 5 secondstime.Sleep(5 * time.Second)// 這里使用你創(chuàng)建的副本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)// 這里沒(méi)有使用goroutine,所以不用使用副本log.Println("Done! in path " + c.Request.URL.Path)})// Listen and serve on 0.0.0.0:8080r.Run(":8080") }總結(jié)
以上是生活随笔為你收集整理的gin中间件中使用Goroutines的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gin自定义HTTP配置
- 下一篇: gin使用BasicAuth()(验证)