Välityspalvelinten joutokäyntiaikakatkokset pitkien HTTP-töiden aikana
Valitse kysely tai määritetty suoratoistomuoto, kun pitkä palvelintyö kohtaa välityspalvelimen joutokäyntirajan, sen sijaan että lisäisit mielivaltaisia tavuja lopulliseen vastaukseen.
Jos palvelu on hiljaa minuutteja ja välityspalvelin aikakatkaisee, valitse, mitä asiakkaan pitäisi vastaanottaa ennen sydämenlyöntitavujen lisäämistä. Ajastimen pidentäminen voi auttaa yhtä odotusta; vastaussopimus määrää, mikä edistyminen on kelvollista.
| Sovellussuunnittelu | Edistymissopimus |
|---|---|
| Asynkroninen työ | 202 Accepted ja esitys, joka kuvaa seurantaa, jota seuraavat äärelliset tilapyynnöt ja selkeät valmistumis-/epäonnistumistilat |
| Server-Sent Events -virta | Content-Type: text/event-stream ja tietueet, jotka SSE-asiakas ymmärtää |
202 ei lupaa, että työ onnistuu. SSE:ssä kommenttitietue voi näyttää tältä:
: heartbeat
Kaksoispiste tekee siitä kommentin eikä sovellustapahtumaa. HTML:n kirjoitusohjeet ehdottavat säännöllisiä kommentteja noin 15 sekunnin välein joitakin vanhoja välityspalvelimen joutokäyntikäyttäytymisiä vastaan; se on ohje, ei yleinen aikakatkaisutakuu.
Viimeistele otsakkeet ja varmista, että sovellus/palvelupino vapauttaa tietueet sen sijaan että puskuroi ne paikallisesti. Vielä lähettämättömät tavut eivät voi pitää alavirran välittäjää aktiivisena.
Älä lisää SSE-kommentteja tavalliseen JSON- tai binaarisisältöön. HTTP/1.1:n nollapituinen chunk päättää chunked-rungon, joten se ei ole toistettava tyhjä sydämenlyönti.
Säilytä toiminnon määräaika ja peruutuskäytäntö. Pelkkä liikenneaktiivisuus ei näytä hyödyllistä työn edistymistä tai kelvollista lopputulosta.