我正在使用实时开发人员通知来处理我的应用程序订阅。我读到可能会订购Pub/Sub消息。
当通知类型为SUBSCRIPTION_PURCHASED
时,我想执行一些逻辑,但如果它是无序的,并且在另一条消息之后到达,可能会有问题,如果我忽略通知类型并直接处理DB数据,可能会更好。是否订购了实时开发人员通知?
由于我使用的是Cloud Functions,不幸的是它不直接支持这种Pub/Sub消息排序,我必须使用Functions创建一个HTTP端点,在Pub/Sub控制台中设置它,并验证自己的Authorization标头是否正确。
此外,该列表链接表示消息至少发送一次,因此我可以再次收到SUBSCRIPTION_PURCHASED
。即使确认,它们可能以何种速度重新交付?如何在CF中处理这一问题,因为CF中可能有多个函数实例在运行?如果重新传递消息发送得太快,也许我无法通过DB检查来处理。
根据文档:
要接收通知,您需要创建一个后端服务器来使用发送到主题的消息。然后,您的服务器可以通过响应对注册端点的HTTPS请求或使用云发布/子客户端库来使用这些消息。(允许订购(。
为了处理速率消息流,文档建议使用订阅服务器的流控制功能来控制订阅服务器接收消息的速率,还可以增加订阅服务器客户端实例的数量。
最后,我建议查看处理重复信息和强制重试,以了解有关如何处理重复信息的更多信息。