【问题标题】:Firebase database triggers execution delayFirebase 数据库触发执行延迟
【发布时间】:2017-04-15 17:17:19
【问题描述】:

当客户端向数据库添加内容时,我正在使用 Firebase 的云功能来执行触发器,但这些触发器似乎需要很长时间才能执行。

例如,我有一个触发器,每当将帖子添加到数据库时,我都会将创建日期添加到帖子中,并且大约需要 10 秒才能完成。 另外,我有更大的触发器,需要更长的时间。

我是否缺少“最佳实践”?我做错什么了吗?

【问题讨论】:

  • 同意。我有一个非常小的启动数据库,我看到了相同类型的延迟。不是很“实时”,所以我怀疑我们做错了什么?我建议将您的函数的代码 sn-p 添加到您上面的帖子中,以便更多人响应。
  • 我实际上发现 Firebase 有一个“热身”期。这意味着当您第一次调用函数时,它会开始预热,并且在完全预热之前不会完全响应。

标签: firebase firebase-realtime-database


【解决方案1】:

我发现 Cloud Functions 有时需要时间来响应的原因是因为它们有一个“预热”期,这意味着当您第一次调用云函数时,它会开始预热,并且不会在它变热之前不能完全响应。

预热后,它会像您预期的那样响应。

这种行为的原因是资源资源平衡 - 如果您有一段时间不使用某个功能,它会关闭并清除资源,以便其他功能响应更快。

【讨论】:

  • 感谢 Eliran。您是否碰巧知道这只是免费层还是应用层的 FB 的固有品质?
  • 免费和付费层级都会发生这种情况,因为这是 Firebase Cloud Functions 的机制。每个功能都在自己的虚拟服务器(或许多多台服务器)上运行,这些虚拟服务器需要时间来响应。这是因为 Firebase 具有高度可扩展性。我知道在 Google Cloud Functions 中有一些解决方法(搜索“预热请求”),但我不确定在 Firebase 中是否可行。另外,请注意,如果您有一个活动的应用程序,服务器将始终处于温暖状态,并且功能将始终保持响应。
猜你喜欢
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 2013-06-19
相关资源
最近更新 更多