【发布时间】:2018-10-02 02:08:48
【问题描述】:
我们有一个使用发布/订阅触发器设置的云功能。
函数被调用topic(NAME).onPublish()
如果函数在冷的时候被调用,它总是运行两次。
Function execution took 284 ms, finished with status: 'ok' METHOD_NAME METHOD_ID
Received message from pub sub METHOD_NAME METHOD_ID
Function execution started METHOD_NAME METHOD_ID
Function execution took 24271 ms, finished with status: 'ok' METHOD_NAME METHOD_ID
Received message from pub sub METHOD_NAME METHOD_ID
Function execution started METHOD_NAME METHOD_ID
之后所有未来的消息只运行一次,直到函数再次变冷。
这是因为第一次调用需要很长时间才能完成并且超时导致它再次运行?有什么办法可以防止这种情况发生?
【问题讨论】:
-
请编辑您的问题以分享 MCVE。 stackoverflow.com/help/mcve
-
@DougStevenson 对于这种特殊情况,我们需要创建一个发布/订阅队列,然后部署一个订阅发布/订阅队列的云函数。根据天气,超时发挥作用,部署的云功能可能需要很大,需要一段时间才能启动。我不确定如何为这种情况创建 MCVE。
-
@DougStevenson 我希望在功能团队工作的人,或者以前遇到过这个问题的人能够确认长启动时间是否起任何作用。
-
如果您想直接联系 Firebase 的某个人,请联系 Firebase 支持。 firebase.google.com/support/contact/troubleshooting
-
我也有同样的问题。它似乎并不总是发生,但经常发生。
标签: firebase google-cloud-platform google-cloud-functions google-cloud-pubsub