gpt4 book ai didi

go - 向现有的http处理函数添加上下文

转载 作者:行者123 更新时间:2023-12-01 22:33:55 32 4
gpt4 key购买 nike

我必须遵循以下设置。我有一个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:
}
...
}

关于go - 向现有的http处理函数添加上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62391757/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com