本篇博客从 接口超时middleware 的案例入手 深入剖析其原理
1、接口超时中间件
在项目根目录创建middleware 目录,然后在middleware目录创建time_out.go,代码如下
package middleware
import (
"github.com/gin-gonic/gin"
"golang.org/x/net/context"
"net/http"
"time"
)
// TimeoutMiddleware 是一个用于设置超时时间的中间件
func TimeoutMiddleware(timeout time.Duration) gin.HandlerFunc {
return func(c *gin.Context) {
ctx, cancel := context.WithTimeout(c.Request.Context(), timeout)
defer cancel()
c.Request = c.Request.WithContext(ctx)
response := make(chan bool, 1)
go func() {
c.Next

最低0.47元/天 解锁文章
2560

被折叠的 条评论
为什么被折叠?



