我有一个Google Cloud Function订阅了一个主题。当需要将电子邮件发送给用户时,我们的Go API会向该主题发布消息。 GCF创建电子邮件对象并将其发送到Sendgrid。 问题是90%的时间里,云函数被调用了两次。
订阅的确认截止时间为 600秒,并且在文档中明确说明了GCF在内部进行确认。
我了解PubSub保证至少一次交付和GCF 至少一次执行后台功能。但是,在大多数情况下还是会发生这种情况,我敢肯定这也不对。
我100%确定不是发送2条消息的API。即使我从GCP控制台手动发布消息进行测试,云功能也会运行两次。
因此execution_id
是相同的。两次执行都花费不到1秒的时间。
所以我不确定发生了什么,谁来负责此重复?
我猜这是GCF,因为两个执行都具有相同的ID?
有人对如何解决此问题有任何想法吗?
答案 0 :(得分:1)
我遇到了几乎相同的情况。我通过删除Cloud Functions的条目和Cloud Pub / Sub的订阅,然后重新创建来修复它。到目前为止,看来一切正常。