Փրոքսիի անգործության ժամկետանցումները երկար HTTP աշխատանքների ընթացքում
Երբ երկար սերվերային աշխատանքը հանդիպում է փրոքսիի անգործության սահմանին, ընտրեք հարցում կամ սահմանված հոսքային ձևաչափ՝ վերջնական պատասխանի մեջ կամայական բայթեր մտցնելու փոխարեն։
Եթե ծառայությունը րոպեներով լուռ է մնում, և փրոքսին ժամկետանցվում է, նախքան սրտի զարկի բայթեր ավելացնելը ընտրեք, թե ինչ պետք է ստանա հաճախորդը։ Ժամաչափը երկարացնելը կարող է օգնել մեկ սպասմանը. պատասխանի պայմանագիրն է որոշում, թե որ առաջընթացն է վավեր։
| Ծրագրի ձևավորում | Առաջընթացի պայմանագիր |
|---|---|
| Ասինխրոն աշխատանք | 202 Accepted՝ մոնիտորինգը նկարագրող ներկայացմամբ, որին հաջորդում են վերջավոր կարգավիճակի հարցումներ և ավարտի/ձախողման հստակ վիճակներ |
| Server-Sent Events հոսք | Content-Type: text/event-stream և գրառումներ, որոնք հասկանում է SSE հաճախորդը |
202-ը չի խոստանում, որ աշխատանքը կհաջողվի։ SSE-ի համար մեկնաբանության գրառումը կարող է այսպիսին լինել.
: heartbeat
Երկու կետը այն դարձնում է մեկնաբանություն, այլ ոչ թե ծրագրի իրադարձություն։ HTML-ի հեղինակային նշումները խորհուրդ են տալիս պարբերական մեկնաբանություններ մոտավորապես 15 վայրկյանը մեկ՝ ընդդեմ փրոքսիի որոշ հին անգործության վարքագծի. սա ուղեցույց է, ոչ թե համընդհանուր ժամկետանցման երաշխիք։
Ավարտեք վերնագրերը և համոզվեք, որ ծրագիրը/սպասարկման շերտը թողարկում է գրառումները՝ դրանք տեղում բուֆերացնելու փոխարեն։ Դեռևս չուղարկված բայթերը չեն կարող ակտիվ պահել ներքևի միջնորդին։
Մի մտցրեք SSE մեկնաբանություններ սովորական JSON կամ բինար բովանդակության մեջ։ HTTP/1.1-ի զրոյական երկարության chunk-ը ավարտում է chunked մարմինը, ուստի այն կրկնելի դատարկ սրտի զարկ չէ։
Պահպանեք գործողության վերջնաժամկետ և չեղարկման քաղաքականություն։ Միայն երթևեկության ակտիվությունը չի ցույց տալիս աշխատանքի օգտակար առաջընթաց կամ վավեր վերջնական արդյունք։