我已阅读GCM(Google云消息传递)指南。据说,当注册客户端失败到GCM时,我们应该重新注册注册过程。谷歌关于指数退避的建议:"客户端应用应该等待前一段时间的两倍才能重试"。
为什么客户端应用会在重试之前等待前一段时间的两倍?
让我们考虑这个场景;
我的客户下载了该应用。
客户直到晚上才打开应用程序。
客户打算在睡觉前打开应用程序。
该应用已启动,客户端使用了离线功能。
此时客户端没有互联网连接。
所以,我的应用程序会尝试将客户端注册到GCM,直到客户端有互联网,指数退避时间达到几小时或几天。
所以,这不是一个坏习惯吗?为什么谷歌建议这个?我认为,开发人员应该将最大(限制)时间设置为指数退避时间,至少。
GCM指南: https://developers.google.com/cloud-messaging/registration
答案 0 :(得分:1)
作为你给出的标准链接,我在下面的子链接中找到了。
请阅读以便更好地了解该过程。
您尝试某些时间(或直到达到两个请求之间的最大间隔),并且它需要在那里停止。然后,当用户使用应用程序或您收到Internet_state_change事件时,它将再次处于循环中。
<强> Example from the link :- 强>
默认的retry_interval是.5秒,默认的randomization_factor是0.5,默认的乘数是1.5,默认的max_interval是1分钟。对于10次尝试,序列将是(以秒为单位的值)并假设我们在10日尝试超过max_elapsed_time: