Google Play“实时开发者通知”有排序键吗?那么重新交付呢?

Posted

技术标签:

【中文标题】Google Play“实时开发者通知”有排序键吗?那么重新交付呢?【英文标题】:Does Google Play "Real-time developer notifications" have an ordering key? And what about redelivers? 【发布时间】:2021-06-28 13:03:36 【问题描述】:

我正在使用Real-time developer notifications 处理我的应用订阅。我读过Pub/Sub messages may be ordered。

我想在通知类型为SUBSCRIPTION_PURCHASED 时执行一些逻辑,但是如果它无序到达并且在另一条消息之后,可能会出现问题,如果我忽略通知类型并直接处理数据库数据可能会更好.是否订购了实时开发者通知?

由于我使用的是 Cloud Functions,但遗憾的是它不直接支持此 Pub/Sub 消息排序,我必须使用 Functions 创建一个 HTTP 端点,在 Pub/Sub 控制台中设置它,并验证自己是否授权标头没问题。

此外,该列表链接表示消息至少发送一次,因此我可以再次收到 SUBSCRIPTION_PURCHASED。即使得到确认,它们可以以何种速度重新交付?如何在 CF 中处理该问题,其中可能有多个 Functions 实例正在运行?如果重新发送消息发送得太快,我可能无法通过数据库检查来处理。

【问题讨论】:

【参考方案1】:

根据documentation:

要接收通知,您需要创建一个后端服务器来使用发送到您的主题的消息。然后,您的服务器可以通过响应对已注册端点的 HTTPS 请求或使用 Cloud Pub/Sub 客户端库来使用这些消息。 (允许订购)。

为了处理速率消息的流,documentation 建议使用订阅者的流控制功能来控制订阅者接收消息的速率,同时您也可以增加订阅者客户端实例的数量。

最后我建议查看Dealing with duplicates and forcing retries 以获取有关如何处理重复信息的更多信息。

【讨论】:

以上是关于Google Play“实时开发者通知”有排序键吗?那么重新交付呢?的主要内容,如果未能解决你的问题,请参考以下文章

为啥打开google play就闪退

Google Developers Console 项目和 Google **Play** Developers Console 项目有啥区别?

怎么接入google play支付

不支持Google Play服务怎么办 Google Play服务不支持解决方法

除非清除 Google Play 缓存,否则 Google Play 不会显示新版本的应用

可以依赖数据库中的自动递增主键吗?