Jika sebuah layanan diam selama beberapa menit dan proxy kehabisan waktu, pilih apa yang harus diterima klien sebelum menambahkan byte detak jantung. Memperpanjang timer dapat membantu satu penantian; kontrak respons menentukan kemajuan mana yang valid.

Desain aplikasiKontrak kemajuan
Tugas asinkron202 Accepted dengan representasi yang menjelaskan pemantauan, diikuti permintaan status terbatas dan status penyelesaian/kegagalan yang eksplisit
Aliran Server-Sent EventsContent-Type: text/event-stream dan catatan yang dipahami klien SSE

202 tidak menjanjikan bahwa tugas akan berhasil. Untuk SSE, catatan komentar dapat terlihat seperti ini:

: heartbeat

Titik dua membuatnya menjadi komentar, bukan peristiwa aplikasi. Catatan penulisan HTML menyarankan komentar berkala kira-kira setiap 15 detik terhadap beberapa perilaku menganggur proxy lama; itu panduan, bukan jaminan batas waktu universal.

Selesaikan header dan pastikan tumpukan aplikasi/penyajian melepaskan catatan alih-alih menyangganya secara lokal. Byte yang belum dikirim tidak dapat menjaga perantara hilir tetap aktif.

Jangan sisipkan komentar SSE ke dalam konten JSON atau biner biasa. Chunk panjang nol HTTP/1.1 mengakhiri badan chunked, jadi itu bukan detak jantung kosong yang dapat diulang.

Pertahankan tenggat waktu operasi dan kebijakan pembatalan. Aktivitas lalu lintas saja tidak menunjukkan kemajuan tugas yang berguna atau hasil akhir yang valid.

Artikel terkait