Heim > Backend-Entwicklung > Golang > Wie schließe ich eine HTTP-Anfrage für die Hintergrundverarbeitung ordnungsgemäß?

Wie schließe ich eine HTTP-Anfrage für die Hintergrundverarbeitung ordnungsgemäß?

DDD
Freigeben: 2024-10-28 15:17:02
Original
1058 Leute haben es durchsucht

 How to Properly Close an HTTP Request for Background Processing?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage