ฉันตั้งค่า 1500 เป็นinitialTimeoutMsในDefaultRetryPolicyเป็นด้านล่าง แต่ไม่ได้พิจารณาการหมดเวลา:
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
ใช้เวลามากกว่า 20 วินาทีในขณะที่ฉันคาดว่าจะจับทั้ง onResponse หรือ onError หลังจาก 1.5 วินาที !!!
ฉันเชื่อว่ามีตรรกะลองอีกครั้งหลังจากแบ็คออฟ ดังนั้นคำขอจะถูกส่งหลังจาก 1.5 วินาทีมันหมดเวลาแล้วลองอีกครั้งหลังจากเวลาสุ่ม โดยรวมแล้วจำนวนการออกจากตำแหน่งคือ DefaultRetryPolicy.DEFAULT_MAX_RETRIES
—
Abhishek Ranjan
มูลค่าของคุณสำหรับ max_tries และ backoff_multiplies คืออะไร
—
Karan Khurana
ทั้งคู่มีค่าเริ่มต้น ใน DefaultRetryPolicy.java:
—
Alireza Noorali
public static final int DEFAULT_MAX_RETRIES = 1;
public static final float DEFAULT_BACKOFF_MULT = 1f;