在 Push 上运行 One off GCM Network Manager 任务

Posted

技术标签:

【中文标题】在 Push 上运行 One off GCM Network Manager 任务【英文标题】:Running One off GCM Network Manager task on Push 【发布时间】:2015-08-06 15:00:11 【问题描述】:

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

随着用户群的增长,服务器在推送时可能会收到 1000 个请求,从而导致后端关闭。我正在寻找一个好的替代方案,以便我可以在给定的时间窗口(比如接下来的 2 小时)内分散服务器调用。有什么好的方法吗?

我正在调查GCM Network Manager 一次性任务。我不确定的一件事是,即使我现在设置一个时间窗口开始,偏移量为 2 小时,因为设备会在收到推送时连接到网络,它会立即触发服务器调用,从而破坏目的. 关于解决此问题的好方法有什么建议吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于在 Push 上运行 One off GCM Network Manager 任务的主要内容,如果未能解决你的问题,请参考以下文章

GCM通过PhoneGap Push Plugin在我的Ionic App中注册2个注册ID

Swift gcm push 收不到通知

如何为Android GCM(Pushnotification)集成Push sharp?

GCM / FCM / Mozilla (Web Push Service) 使用统计

GCM Push Server 端,使用哪个 API Key?

Phonegap Plugin Push & Node-gcm NotRegistered