登录
首页 >  Golang >  Go问答

对现有的 HTTP 处理函数添加上下文

来源:stackoverflow

时间:2024-03-08 18:18:23 102浏览 收藏

golang学习网今天将给大家带来《对现有的 HTTP 处理函数添加上下文 》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我必须遵循设置。我有一个 mux http 服务器,我想向其中添加上下文以提高弹性。

srv := http.server{
    addr:         ":" + _operatorportstr,
    writetimeout: 8 * time.second,
    handler:      http.timeouthandler(router, 5*time.second, "timeout!\n"),
}
srv.listenandserve()

我现在有了我的处理函数,如果 http 请求达到超时,我想终止该函数。

func Deploy(w http.ResponseWriter, r *http.Request) {

loadConfigs()

calltos3()

updateResource()

}

主要问题是不可能将上下文传递给每个函数,因为它们的级别非常高。那么向处理程序添加上下文以在超时后终止请求的正确方法是什么?


解决方案


超时处理程序设置请求中的上下文。您可以使用请求上下文来检查请求是否超时:

func Deploy(w http.ResponseWriter, r *http.Request) {
   ...
   select {
      case <-r.Context().Done():
         // Timed out
      default:
   }
   ...
}

好了,本文到此结束,带大家了解了《对现有的 HTTP 处理函数添加上下文 》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>