Kebijakan coba ulang permintaan Volley tidak mempertimbangkan batas waktu

11

Saya telah menetapkan 1500 sebagai initialTimeoutMs di DefaultRetryPolicy seperti di bawah ini tetapi tidak mempertimbangkan batas waktu:

request.setRetryPolicy(new DefaultRetryPolicy(1500
        , DefaultRetryPolicy.DEFAULT_MAX_RETRIES
        , DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

Saya memutus WiFi pada perangkat saya untuk menguji batas waktu itu dan saya melihat kali ini di Logcat :

2019-12-16 14:28:15.892 I/MyClass: request sent
2019-12-16 14:28:35.930 I/MyClass: request caught onError

Butuh lebih dari 20 detik sementara saya berharap untuk menangkap onResponse atau onError setelah 1,5 detik !!!

Alireza Noorali
sumber
Saya percaya bahwa ada logika coba-coba setelah mundur. Jadi permintaan dikirim, setelah 1,5 detik habis dan kemudian coba lagi setelah beberapa waktu acak. Secara keseluruhan jumlah pensiunan adalah DefaultRetryPolicy.DEFAULT_MAX_RETRIES
Abhishek Ranjan
apa nilai Anda untuk max_tries dan backoff_multiplies?
Karan Khurana
Keduanya memiliki nilai default. dalam DefaultRetryPolicy.java:public static final int DEFAULT_MAX_RETRIES = 1; public static final float DEFAULT_BACKOFF_MULT = 1f;
Alireza Noorali

Jawaban:

0

Gunakan 5 detik karena 15 detik lebih banyak untuk memberi dalam batas waktu ..

int TIME_OUT = 500; //use 5 sec it will work fine with it..

request.setRetryPolicy(new DefaultRetryPolicy(
    TIME_OUT, 
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

sumber