Ada perbedaan antara BackoffPolicy.EXPONENTIAL
dan BackoffPolicy.LINEAR
dalam setBackoffCriteria
yang digunakan dalam kebijakan retry. Ini memengaruhi cara waktu penundaan antara upaya tugas yang gagal dihitung. Berikut penjelasannya:
BackoffPolicy.EXPONENTIAL
:- Dengan
BackoffPolicy.EXPONENTIAL
, waktu penundaan antara upaya tugas yang gagal akan meningkat secara eksponensial setiap kali tugas mencoba ulang. - Misalnya, jika tugas gagal pertama kali pada pukul 10:00 dan Anda mengatur
setInitialBackoff(1, TimeUnit.MINUTES)
dansetBackoffPolicy(BackoffPolicy.EXPONENTIAL)
, maka penundaan antara upaya pertama dan kedua mungkin menjadi 1 menit, dan penundaan antara upaya kedua dan ketiga mungkin menjadi 2 menit, dan seterusnya. - Ini berarti waktu penundaan akan meningkat secara eksponensial setiap kali tugas gagal, yang dapat memberikan waktu untuk pemulihan sebelum mencoba ulang lagi.
- Dengan
BackoffPolicy.LINEAR
:- Dengan
BackoffPolicy.LINEAR
, waktu penundaan antara upaya tugas yang gagal akan meningkat secara linear. - Misalnya, jika tugas gagal pertama kali pada pukul 10:00 dan Anda mengatur
setInitialBackoff(1, TimeUnit.MINUTES)
dansetBackoffPolicy(BackoffPolicy.LINEAR)
, maka penundaan antara upaya pertama dan kedua mungkin menjadi 1 menit, dan penundaan antara upaya kedua dan ketiga juga akan menjadi 1 menit, dan seterusnya. - Ini berarti waktu penundaan akan tetap konstan setiap kali tugas mencoba ulang, tanpa peningkatan eksponensial.
- Dengan
Anda harus memilih jenis kebijakan yang sesuai dengan kebutuhan dan preferensi Anda. Penggunaan BackoffPolicy.EXPONENTIAL
sering digunakan ketika Anda ingin memberikan waktu lebih banyak untuk pemulihan atau mengurangi tekanan pada sumber daya. Sedangkan BackoffPolicy.LINEAR
sering digunakan ketika Anda ingin waktu penundaan antara upaya tetap konsisten.