Proxy inaktivitási időtúllépések hosszú HTTP-feladatok alatt
Válasszon lekérdezést vagy meghatározott streamelési formátumot, amikor a hosszú szerverművelet eléri a proxy inaktivitási korlátját, ahelyett hogy önkényes bájtokat szúrna a végső válaszba.
Ha egy szolgáltatás percekig csendben marad, és egy proxy időtúllépést kap, válassza ki, mit kapjon a kliens, mielőtt szívverésbájtokat adna hozzá. Egy időzítő meghosszabbítása segíthet egy várakozáson; a válaszszerződés határozza meg, melyik előrehaladás érvényes.
| Alkalmazástervezés | Előrehaladási szerződés |
|---|---|
| Aszinkron feladat | 202 Accepted a monitorozást leíró reprezentációval, majd véges állapotkérések és explicit befejezési/hibás állapotok |
| Server-Sent Events adatfolyam | Content-Type: text/event-stream és az SSE-kliens által értelmezett rekordok |
A 202 nem ígéri, hogy a feladat sikeres lesz. SSE esetén egy megjegyzésrekord így nézhet ki:
: heartbeat
A kettőspont megjegyzéssé teszi, nem alkalmazáseseménnyé. A HTML szerzői jegyzetei körülbelül 15 másodpercenkénti rendszeres megjegyzéseket javasolnak bizonyos régi proxy-inaktivitási viselkedés ellen; ez útmutatás, nem általános időtúllépési garancia.
Fejezze be a fejléceket, és győződjön meg arról, hogy az alkalmazás/kiszolgáló verem felszabadítja a rekordokat, ahelyett hogy helyben pufferelné őket. A még el nem küldött bájtok nem tarthatnak aktívan egy alsóbb köztes felet.
Ne szúrjon SSE-megjegyzéseket közönséges JSON- vagy bináris tartalomba. A HTTP/1.1 nulla hosszúságú chunkja befejez egy chunked testet, tehát nem ismételhető üres szívverés.
Tartson fenn egy műveleti határidőt és egy törlési szabályzatot. A forgalmi aktivitás önmagában nem mutat hasznos feladatelőrehaladást vagy érvényes végső eredményt.