Percobaan ulang dapat membantu ketika koneksi terputus sebentar, namun hal ini dapat memperburuk pemadaman ketika setiap klien mengulangi pekerjaan sekaligus. Kebijakan percobaan ulang yang andal bersifat selektif, terbatas, dan menyadari apakah operasi tersebut aman untuk diulang.

Putuskan apakah percobaan ulang aman

  • Coba lagi kegagalan koneksi sementara dan dokumentasikan respons kelebihan beban, bukan setiap kesalahan klien atau validasi.
  • Coba ulang mutasi hanya ketika server mendukung mekanisme idempotensi atau operasi aman untuk diulang.
  • Hormati Retry-After ketika server menyediakannya.
delay = min(maxDelay, baseDelay * 2^attempt) + randomJitter

Tetapkan batas yang tegas

Pilih jumlah upaya maksimum dan tenggat waktu keseluruhan. Berhenti ketika penelepon membatalkan, laporkan kegagalan terakhir dengan jelas, dan catat metrik untuk jumlah percobaan ulang daripada mencatat data permintaan sensitif.

Uji kebijakan dengan jam deterministik dan rangkaian hasil simulasi. Pastikan pemadaman berkelanjutan tidak menyebabkan pekerjaan tanpa batas atau membuat pengguna menunggu tanpa batas waktu.