Chính sách thử lại yêu cầu của Volley không xem xét thời gian chờ


11

Tôi đã đặt 1500 là initTimeoutMs trong DefaultR temPolicy như bên dưới nhưng nó không xem xét đến thời gian chờ:

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

Tôi đã ngắt kết nối WiFi trên thiết bị của mình để kiểm tra thời gian chờ và tôi đã thấy những lần này trong Logcat :

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

Phải mất hơn 20 giây trong khi tôi dự kiến ​​sẽ bắt được onResponse hoặc onError sau 1,5 giây !!!


Tôi tin rằng có một logic thử lại sau khi backoff. Vì vậy, yêu cầu được gửi, sau 1,5 giây nó hết thời gian và sau đó thử lại sau một thời gian ngẫu nhiên. Nhìn chung, số lượng nghỉ hưu là DefaultR temPolicy.DEFAULT_MAX_RETRIES
Abhishek Ranjan

giá trị của bạn cho max_tries và backoff_multiplies là gì?
Karan Khurana

Cả hai đều có giá trị mặc định. trong DefaultR public static final int DEFAULT_MAX_RETRIES = 1; public static final float DEFAULT_BACKOFF_MULT = 1f;
temPolicy.java

Câu trả lời:



0

Sử dụng 5 giây vì 15 giây sẽ nhiều hơn khi hết thời gian chờ ..

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));
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.