kali ini saya akan sedikit bercerita mengenai bug yang saya temukan pada saat menggunakan library retrofit ketika mendevelop sebuah aplikasi android, peristiwa itu terjadi ketika proses upload file yang size nya kira-kira 1-5 MB , awalnya sih saya testing dengan wifi kantor tidak ada masalah, karena dengan jaringan kantor yang cukup stabil.
tapi ketika saya test menggunakan jaringan HP disinilah masalah itu muncul, dikarenakan provider yang saya gunakan itu tidak stabil, terkadang file itu terkirim 2x !

lalu saya memastikan dengan mengubah network HP menjadi mode 2G , nah ternyata persentase double request itu semakin tinggi dari 5 kali percobaan yang saya lakukan 3x terjadi double request .

Setelah berselancar ria menelusuri pelosok akhirnya ketemu juga solusinya, retrofit ini merupakan pengembangan dari OkHttp, nah pada Okhttp itu memiliki class bawaan yang bernama class dispatcher (okhttp3.Dispatcher)
dimana class dipatcher ini berfungsi untuk mengatur kebijakan/pengaturan ketika sebuah request async saat dijalankan dalam satu proses ataupun saat bersamaan.

lebih lengkapnya bisa dibaca disini dokumentasinya :
https://square.github.io/okhttp/3.x/okhttp/okhttp3/Dispatcher.html

berikut Contoh implementasi :

// buat instance object 
Dispatcher dispatcher = new Dispatcher(); // set maxRequest 1 untuk memastikan request yang diproses cukup 1x dispatcher.setMaxRequests(1);