首頁 > 後端開發 > Golang > 主體

如何在 Go 中保持後台處理的同時正確關閉狀態為 202 Accepted 的 HTTP 請求?

Barbara Streisand
發布: 2024-10-28 09:45:29
原創
733 人瀏覽過

 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學習者快速成長!