你不知道的volley的超时时间和重连次数

一、代码如下:


myRequest.setRetryPolicy(new DefaultRetryPolicy(

                MY_SOCKET_TIMEOUT_MS, 

                DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 

                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


注:一共有3个参数


MY_SOCKET_TIMEOUT_MS,默认值2500, 指定Socket在每次尝试重连的超时时间单位为ms

DefaultRetryPolicy.DEFAULT_MAX_RETRIES 重连次数,默认值为1 

DefaultRetryPolicy.DEFAULT_BACKOFF_MULT 默认值为1f,一个乘法器,用于为每次重试尝试确定socket的指数时间设置

所以volley默认的设置的超时时间是5s。


二、具体超时时间的算法

计算公式如下:

Timeout - 3000 secs, Num of Attempt - 2, Back Off Multiplier - 2 

第一次链接:


time = time + (time * Back Off Multiplier ); 

time = 3000 + 6000 = 9000 

Socket Timeout = time; 

第一次重连:


time = time + (time * Back Off Multiplier ); 

time = 9000 + 18000 = 27000 

Socket Timeout = time; 


所以请求socket超时时间为27秒,在27秒后会抛出TimeoutError异常。

                        喜欢 就关注吧,欢迎投稿!

640?wx_fmt=jpeg



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值