Eine HTTP-Anfrage für die Hintergrundverarbeitung ordnungsgemäß schließen
Bei HTTP-Anfragen ist es oft wünschenswert, sofort zu antworten, während die Anfragenutzlast im verarbeitet wird Hintergrund. Dies wird erreicht, indem die Anfrage mit dem Statuscode 202 Akzeptiert bestätigt wird, sodass Clients fortfahren können, ohne auf den Abschluss der Hintergrundaufgabe warten zu müssen.
Antworten mit 202 Akzeptiert
Um solche Anfragen ordnungsgemäß zu bearbeiten, ist es wichtig, die Anfrage nach dem Senden des 202 Accepted-Headers zu schließen. Dies liegt daran, dass die Rückkehr vom Handler den Abschluss der Anfrage bedeutet. Daher wird empfohlen, die Anfrage explizit zu schließen, bevor die Hintergrundaufgabe gestartet wird:
<code class="golang">func index(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusAccepted) go sleep() return // Close the request }</code>
Antworten mit 200 OK
Bei Antworten mit 200 OK reicht es aus um vom Handler zurückzukehren, da die HTTP-Header automatisch so eingestellt werden, dass sie eine erfolgreiche Antwort anzeigen.
<code class="golang">func index(w http.ResponseWriter, r *http.Request) { go sleep() return // Close the request }</code>
Achtung
Es ist wichtig zu beachten, dass das HTTP Anforderungs- und Antwortwerte sollten nicht in der Hintergrund-Goroutine verwendet werden, nachdem die Anforderung geschlossen wurde, da sie möglicherweise wiederverwendet werden.
Das obige ist der detaillierte Inhalt vonWie schließe ich eine HTTP-Anfrage für die Hintergrundverarbeitung ordnungsgemäß?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!