go语言之路

golang + gin 异步执行操作

package main

import (
    "context"
    "fmt"
    "time"

    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()
    router.GET("/asy", exec)
    router.Run()
}

func exec(c *gin.Context) {
    go func() {
        message := dowork()
        fmt.Println(message)
    }()
}

func dowork() string {
    ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    defer cancel()
    ticker := time.NewTicker(time.Second)
    for {
        select {
        case <-ticker.C:
            fmt.Println("ticker")
        case <-ctx.Done():
            return "finish"
        }
    }
    return ""
}

关于 golang json.Unmarshal 闭坑指南以及解决办法

上一篇

关于 Golang 单元测试的一点实践

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

个人微信公众号

we-tuiguang

qq交流群

群号:1046260719

微信扫一扫

微信扫一扫