【发布时间】:2021-07-20 16:46:34
【问题描述】:
我有客户在 PubSub 上发布消息,GCF 触发接收到的每条消息,从而编辑我的 firestore 中的文档。该文档包含一个 id、一个房间的名称以及该房间内的当前人数。 GCF 增加当前数量。
但我认为,如果同一房间同时有两条消息,gcf 将无法完成正确的工作,我的文档不会有最后的 +2 吗?
基本上,GCF 获取文档,并增加当前数量。
如何处理同一房间同时到达的多条消息?
【问题讨论】:
-
“同一时间”不清楚。您需要一个时间窗口来对同一消息进行重复数据删除。是你需要的吗?
-
感谢您的回答。不是真的,我承认两个客户会“同时”进入同一个房间并点击按钮。两条消息到达 PubSub 并触发两个 GCF。他们获得相同的文档,并在此文档中添加 +1。我的文档中只有 +1,但我应该有 +2。
-
好的,你想要+2;不是+1,所以不是重复数据删除。明白了。您是否尝试与 Firestore 进行交易?无论如何,你每秒有多少条消息?
标签: javascript firebase google-cloud-firestore google-cloud-functions google-cloud-pubsub