발리 요청 재시도 정책은 시간 초과를 고려하지 않습니다


11

아래와 같이 DefaultRetryPolicy 에서 1500을 initialTimeoutMs 로 설정 했지만 시간 초과를 고려하지 않습니다.

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

시간 초과 여부를 테스트하기 위해 장치에서 WiFi를 분리하고 Logcat 에서 다음 시간을 보았습니다 .

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

1.5 초 후에 onResponse 또는 onError를 잡을 것으로 예상되는 동안 20 초 이상 걸렸습니다!


백 오프 후 재시도 로직이 있다고 생각합니다. 따라서 요청은 1.5 초 후에 시간 초과 된 후 임의의 시간 후에 다시 시도됩니다. 전체 은퇴의 수는 DefaultRetryPolicy.DEFAULT_MAX_RETRIES입니다
Abhishek 란잔

max_tries 및 backoff_multiplies의 값은 무엇입니까?
카란 Khurana

둘 다 기본값이 있습니다. DefaultRetryPolicy.java에서 :public static final int DEFAULT_MAX_RETRIES = 1; public static final float DEFAULT_BACKOFF_MULT = 1f;
Alireza Noorali

답변:



0

타임 아웃을주기 위해 15 초가 걸리기 때문에 5 초를 사용하십시오.

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));
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.