პროქსის უმოქმედობის დროის ამოწურვა გრძელი HTTP სამუშაოების დროს
აირჩიეთ გამოკითხვა ან განსაზღვრული სტრიმინგის ფორმატი, როცა გრძელი სერვერის სამუშაო პროქსის უმოქმედობის ზღვარს ხვდება, ნაცვლად იმისა, რომ საბოლოო პასუხში თვითნებური ბაიტები ჩასვათ.
თუ სერვისი წუთობით ჩუმად რჩება და პროქსის დრო ამოიწურა, აირჩიეთ, რა უნდა მიიღოს კლიენტმა გულისცემის ბაიტების დამატებამდე. ტაიმერის გახანგრძლივება ერთ ლოდინს დაეხმარება; პასუხის კონტრაქტი განსაზღვრავს, რომელი პროგრესია ვალიდური.
| აპლიკაციის დიზაინი | პროგრესის კონტრაქტი |
|---|---|
| ასინქრონული სამუშაო | 202 Accepted მონიტორინგის აღწერის წარმოდგენით, შემდეგ სასრული სტატუსის მოთხოვნები და დასრულების/წარუმატებლობის მკაფიო მდგომარეობები |
| Server-Sent Events ნაკადი | Content-Type: text/event-stream და ჩანაწერები, რომლებსაც SSE კლიენტი ესმის |
202 არ გვპირდება, რომ სამუშაო წარმატებით დასრულდება. SSE-სთვის კომენტარის ჩანაწერი ასე შეიძლება გამოიყურებოდეს:
: heartbeat
ორწერტილი მას კომენტარად აქცევს და არა აპლიკაციის მოვლენად. HTML-ის ავტორობის შენიშვნები გვთავაზობს პერიოდულ კომენტარებს დაახლოებით ყოველ 15 წამში პროქსის ზოგიერთი ძველი უმოქმედობის ქცევის წინააღმდეგ; ეს მითითებაა, არა უნივერსალური დროის ამოწურვის გარანტია.
დაასრულეთ სათაურები და დარწმუნდით, რომ აპლიკაცია/მომსახურების სტეკი ათავისუფლებს ჩანაწერებს და არა ლოკალურად ბუფერებს. ჯერ გაუგზავნელი ბაიტები ვერ შეინარჩუნებს ქვედა დონის შუამავალს აქტიურს.
ნუ ჩასვამთ SSE კომენტარებს ჩვეულებრივ JSON ან ბინარულ შიგთავსში. HTTP/1.1-ის ნულოვანი სიგრძის chunk ამთავრებს chunked სხეულს, ასე რომ ეს არ არის განმეორებადი ცარიელი გულისცემა.
შეინარჩუნეთ ოპერაციის ვადა და გაუქმების პოლიტიკა. მხოლოდ ტრაფიკის აქტივობა არ აჩვენებს სასარგებლო სამუშაო პროგრესს ან ვალიდურ საბოლოო შედეგს.