首页 > 后端开发 > Golang > 正文

如何在 Go 中保持后台处理的同时正确关闭状态为 202 Accepted 的 HTTP 请求?

Barbara Streisand
发布: 2024-10-28 09:45:29
原创
732 人浏览过

 How to Properly Close HTTP Requests with 202 Accepted Status While Maintaining Background Processing in Go?

在继续后台处理时正确关闭请求

使用 202 Accepted 状态代码响应 HTTP 请求时,正确处理请求的关闭至关重要确保负载仍然可以在后台处理。

返回语句充分性

在处理需要关闭的请求时,必须从处理函数返回以表示其完成。这是因为,根据 http.Handler 文档,返回表示请求已完成,同时或返回后访问 ResponseWriter 或 Request.Body 是无效的。

省略最终返回

从处理函数返回足以关闭请求,因此您可以完全省略最终的返回语句。在 Go 中,当执行最后一条语句时,执行将退出函数,无论是否返回。

接受 202 的最小代码

如果您只需要要返回 202 已接受状态代码并继续在后台处理,以下最少代码就足够了:

<code class="go">func index(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusAccepted)
    go sleep()
}</code>
登录后复制

并发使用的预防措施

请记住,访问从处理程序返回后,并发 Goroutine 中的 ResponseWriter 或 http.Request 值是不安全的,因为它们可能会被重用。

以上是如何在 Go 中保持后台处理的同时正确关闭状态为 202 Accepted 的 HTTP 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!