Idle-time-outs van proxy's tijdens lange HTTP-taken
Kies polling of een gedefinieerd streamingformaat wanneer lang serverwerk de inactieflimiet van een proxy raakt, in plaats van willekeurige bytes in het uiteindelijke antwoord in te voegen.
Als een dienst minutenlang stil blijft en een proxy een time-out krijgt, kies dan wat de client moet ontvangen voordat je heartbeat-bytes toevoegt. Een timer verlengen kan één wachttijd helpen; het antwoordcontract bepaalt welke voortgang geldig is.
| Applicatieontwerp | Voortgangscontract |
|---|---|
| Asynchrone taak | 202 Accepted met een representatie die monitoring beschrijft, gevolgd door eindige statusverzoeken en expliciete voltooiings-/foutstatussen |
| Server-Sent Events-stream | Content-Type: text/event-stream en records die de SSE-client begrijpt |
202 belooft niet dat de taak slaagt. Voor SSE kan een commentaarrecord er zo uitzien:
: heartbeat
De dubbele punt maakt er een commentaar van in plaats van een applicatiegebeurtenis. De auteursnotities van HTML suggereren periodieke commentaren ongeveer elke 15 seconden tegen bepaald oud inactief gedrag van proxy's; dat is richtlijn, geen universele time-outgarantie.
Rond de headers af en zorg ervoor dat de applicatie/serving-stack records vrijgeeft in plaats van ze lokaal te bufferen. Bytes die nog niet zijn verzonden, kunnen een stroomafwaartse tussenpartij niet actief houden.
Voeg geen SSE-commentaren toe aan gewone JSON- of binaire inhoud. Een HTTP/1.1-chunk met lengte nul beëindigt een chunked body, dus het is geen herhaalbaar leeg hartslag.
Behoud een operationele deadline en een annuleringsbeleid. Alleen verkeersactiviteit toont geen nuttige taakvoortgang of een geldig eindresultaat.