Open x-lambda opened 3 years ago
newCtx := metadata.NewIncomingContext(ctx, md) out, err := s.server.(BlogServiceHTTPServer).GetArticles(newCtx, &in)
大佬还是这个ctx转换问题,这里使用metadata转换有啥特殊的原因吗? 我如果直接使用
newCtx := ctx.Request.Context()
后续的操作,db.Exec()/http.Do()/redis.Do()都会检查ctx.Done()来判断是否超时,这样我的超时就可以控制在更细的粒度。 能否解答一下这2种,哪种更好一点呢?
db.Exec()/http.Do()/redis.Do()
ctx.Done()
metadata 这个也可以检查用来检查超时,因为都实现了 context 的接口, metadata 只是为了把 header 的信息附加到 context 当中,并且可以和 grpc 保持一致,这样我们 Service 层的代码可以不做任何改动就同时支持 grpc 和 http
metadata
大佬还是这个ctx转换问题,这里使用metadata转换有啥特殊的原因吗? 我如果直接使用
后续的操作,
db.Exec()/http.Do()/redis.Do()
都会检查ctx.Done()
来判断是否超时,这样我的超时就可以控制在更细的粒度。 能否解答一下这2种,哪种更好一点呢?