如果无法批量发送主题通知,可以采取以下解决方案。
1、延迟App端通知的显示时间。
应用程序收到通知后,您可以决定何时向用户显示通知。以这样的方式编写一个逻辑,假设有些用户会在收到通知后立即看到通知,有些用户会在 2 分钟后看到它,有些用户会在 4 分钟后看到它,依此类推。
您可以使用报警管理器 https://developer.android.com/reference/android/app/AlarmManager, Handler https://developer.android.com/reference/android/os/Handler或类似的东西。
2. 创建主题桶
假设您有一个主题sport_news
。划分主要话题sport_news
into sport_news_1
, sport_news_2
, sport_news_3
等等。实现您自己的逻辑来划分用户。
例如
第 1 天注册的用户将分为sport_news_1
第 2 天注册的用户将分为sport_news_2
等等。
因此,每当您必须向主题发送通知时sport_news
然后您将向属于它的所有主题发送通知,在我们的例子中它将是sport_news_1
, sport_news_2
等等。您可以按一定的时间间隔发送它来处理批次,因为您有服务器端控制来批量发送它。
3. 按一定时间间隔扩展服务器以处理大流量。
在向数百万用户发送通知并知道您将获得高流量后,然后在一定时间内扩展您的服务器以处理大流量(例如 1-2 小时)。
4. 改善获取数据 api 的延迟
知道您会收到太多针对特定获取数据 api 的请求,您可以实现缓存、数据库索引、内存数据存储或任何其他方式来加速获取操作。您只需要找到一种方法以某种方式减少 fetch api 的响应时间,您的服务器将以这种方式提供大量流量,并且 CPU 利用率可能会降低。