Mga timeout sa idle ng proxy sa mahabang trabaho ng HTTP
Pumili ng polling o tinukoy na format ng streaming kapag ang mahabang trabaho ng server ay nakatagpo ng limitasyon sa idle ng proxy, sa halip na magsingit ng di-makatwirang byte sa huling tugon.
Kung ang isang serbisyo ay tahimik nang ilang minuto at nag-timeout ang proxy, piliin kung ano ang dapat matanggap ng kliyente bago magdagdag ng heartbeat byte. Ang pagpapahaba ng timer ay makakatulong sa isang paghihintay; ang kontrata ng tugon ang nagtatakda kung aling pag-unlad ang wasto.
| Disenyo ng aplikasyon | Kontrata ng pag-unlad |
|---|---|
| Asynchronous na trabaho | 202 Accepted na may representasyon na naglalarawan ng pagmamanman, na sinusundan ng may hangganang kahilingan sa status at malinaw na estado ng pagkumpleto/pagkabigo |
| Server-Sent Events stream | Content-Type: text/event-stream at mga talaan na nauunawaan ng SSE client |
Hindi nangangako ang 202 na magtatagumpay ang trabaho. Para sa SSE, ang talaan ng komento ay maaaring ganito ang hitsura:
: heartbeat
Ginagawa ito ng tutuldok na komento sa halip na kaganapan ng aplikasyon. Ang mga tala sa paggawa ng HTML ay nagmumungkahi ng pana-panahong komento humigit-kumulang bawat 15 segundo laban sa ilang lumang pag-uugali ng idle ng proxy; iyon ay gabay, hindi isang pangkalahatang garantiya ng timeout.
Tapusin ang mga header at tiyakin na ang aplikasyon/stack ng paghahatid ay naglalabas ng mga talaan sa halip na i-buffer ang mga ito nang lokal. Ang mga byte na hindi pa naipapadala ay hindi makapagpapanatili ng aktibong downstream intermediary.
Huwag magsingit ng SSE komento sa ordinaryong JSON o binary na nilalaman. Ang zero-length chunk ng HTTP/1.1 ay nagtatapos sa chunked body, kaya hindi ito isang na-uulit na walang laman na heartbeat.
Panatilihin ang deadline ng operasyon at patakaran sa pagkansela. Ang aktibidad ng trapiko lamang ay hindi nagpapakita ng kapaki-pakinabang na pag-unlad ng trabaho o wastong huling resulta.