Starpniekserveru dīkstāves taimauti garu HTTP uzdevumu laikā
Izvēlieties aptauju vai noteiktu straumēšanas formātu, kad ilgs servera darbs sasniedz starpniekservera dīkstāves ierobežojumu, nevis ievietojiet patvaļīgus baitus gala atbildē.
Ja pakalpojums minūtēm klusē un starpniekserverim iestājas taimauts, izvēlieties, ko klientam jāsaņem pirms sirdsdarbības baitu pievienošanas. Taimera pagarināšana var palīdzēt vienai gaidīšanai; atbildes līgums nosaka, kāds progress ir derīgs.
| Lietotnes dizains | Progresa līgums |
|---|---|
| Asinhronis uzdevums | 202 Accepted ar monitoring aprakstošu attēlojumu, kam seko ierobežoti statusa pieprasījumi un skaidri pabeigšanas/neveiksmes stāvokļi |
| Server-Sent Events straume | Content-Type: text/event-stream un ieraksti, ko saprot SSE klients |
202 nesola, ka uzdevums izdosies. SSE gadījumā komentāra ieraksts var izskatīties šādi:
: heartbeat
Kols padara to par komentāru, nevis lietotnes notikumu. HTML autorēšanas piezīmes iesaka periodiskus komentārus aptuveni ik pēc 15 sekundēm pret kādu vecu starpniekservera dīkstāves uzvedību; tas ir norādījums, nevis universāla taimauta garantija.
Pabeidziet galvenes un nodrošiniet, ka lietotne/apkalpošanas steks atbrīvo ierakstus, nevis buferē tos lokāli. Vēl neizsūtīti baiti nevar uzturēt lejupstraumes starpnieku aktīvu.
Neievietojiet SSE komentārus parastā JSON vai binārā saturā. HTTP/1.1 nulles garuma chunk pabeidz chunked ķermeni, tāpēc tas nav atkārtojams tukšs sirdsdarbības signāls.
Saglabājiet operācijas termiņu un atcelšanas politiku. Tikai trafika aktivitāte neparāda lietderīgu uzdevuma progresu vai derīgu gala rezultātu.