在Push上运行一个关闭GCM网络管理器任务

时间:2015-08-06 15:00:12

标签: android performance push-notification google-cloud-messaging google-play-services

在Android应用中,我在推送时从服务器执行数据轮询。当设备收到推送时,它会ping服务器以获取最新数据。

随着用户群的增长,服务器在推送后端时可能会获得1000个请求。我正在寻找一个好的替代方案,以便我可以在给定的时间窗口中分发服务器呼叫,例如接下来的2小时。做这件事的好方法是什么?

我正在调查GCM Network Manager一次性任务。我不确定的一件事是,即使我现在设置一个时间窗口启动,偏移量为2小时,因为当接收到推送时设备将连接到网络,它会立即触发服务器调用以达到目的。 关于什么可能是解决这个问题的好方法的任何建议?

1 个答案:

答案 0 :(得分:2)

我认为该任务不会立即执行,因为GCM网络管理员仅在网络启动时才执行,而是尝试将作业一起批处理以减少唤醒次数和功耗。

但是,为了安全起见,在创建OneoffTask时,您可以设置execution window。在那里,您可以设置任务运行前的最短时间。我建议使用随机数秒,例如在0到60之间,以减少服务器上的潜在负载。

相关问题