Cloud PubSub重复消息触发的Cloud Functions

时间:2019-05-17 21:41:18

标签: google-cloud-platform google-cloud-functions google-cloud-pubsub

我正在尝试使用Cloud Functions作为由PubSub触发的异步后台工作程序,并做一些更长的工作(按分钟顺序)。 完整的代码在这里https://github.com/zdenulo/cloud-functions-pubsub

我的原型将数据插入BigQuery中,并等待几分钟(以模仿更长的任务)。 我正在发布100条关于PubSub主题的消息(间隔为1秒)。

强调了PubSub可以多次传递同一条消息,但是令我惊讶的是,每100条中有10条到40条重复。 CF的响应时间为5、6、7分钟。在4分钟的回复中,我没有发现重复的内容。
我已经在相同的时间间隔内进行了多次测试。接收第一条消息和第二条消息之间的时间差为30到600秒。

在文档https://cloud.google.com/pubsub/docs/troubleshooting中提到“ Cloud Pub / Sub可以发送重复的消息。例如,当您在确认截止日期到期之前不确认消息时,Cloud Pub / Sub将重新发送该消息。”对于Cloud Functions Subscription,确认截止日期为600秒(10分钟),因此,根据我的理解,这不应该是原因。

也许我所拥有的测试用例是特定的,或者还有其他问题。
感谢您提供有关如何处理这种情况以及这是否正常的建议,或者如何防止重复(不包括数据流)的建议。

1 个答案:

答案 0 :(得分:0)

有一个问题影响到2019年1月之前部署的Cloud Functions,该问题导致运行超过5分钟的功能的重复触发器的比率增加。请尝试删除并重新部署您的功能以解决该问题。