首页 > 解决方案 > 如果在firebase中达到最大并发调用,它是否会失败额外调用

问题描述

我打算为我的一个收藏触发后台功能。我会使用该集合的 onWrite 并执行一些工作。

从下面的链接 -

单个函数的最大并发调用例如:如果处理每个事件需要 100 秒,则调用率将被限制为平均每秒 30 次

https://firebase.google.com/docs/functions/quotas#additional_quotas_for_background_functions

所以我想知道我是否为每次写入触发了一个后台函数,并假设它在一秒钟内超过了最大调用,它是否会使额外的请求失败?或者排队并在下一批中接受额外的请求?

标签: firebasegoogle-cloud-firestore

解决方案


首先,看看以下内容

  • 函数最多可能需要 10 秒才能响应Cloud Firestore 中的更改。
  • 不保证订购。快速更改可能会以意外的顺序触发函数调用。
  • 事件至少传递一次,但单个事件可能会导致多个函数调用。避免依赖完全一次的机制,并编写幂等函数。

接下来,当您的后台功能达到任何配额限制时会发生什么?

当一个函数消耗所有分配的资源时,该资源将变得不可用,直到配额被刷新或增加。这可能意味着您的功能和同一项目中的所有其他功能在此之前将无法工作。当其中一个资源超出配额且函数无法执行时,函数会返回 HTTP 500 错误代码。

因此,尽管每个事件至少被传递(排队)一次,但一旦您的函数达到配额限制,后续调用将返回服务器端错误。


推荐阅读