【发布时间】:2018-02-25 16:58:02
【问题描述】:
我有一个 firebase http 函数,可以将数据附加到 firebase 数据库列表。第二个函数被配置为在列表发生变化时对其进行处理,然后更新一些摘要数据。就我而言,这些更新是突发的。我正在使用 node.js firebase 函数。
查看 firebase 日志,当我从一个空列表开始时,我看到了这个序列:
- 从 http 添加到列表 - 列表有 1 个元素
- 从 http 添加到列表 - 列表有 2 个元素
- 从 http 添加到列表 - 列表有 3 个元素
- 从 http 添加到列表 - 列表有 4 个元素
- 用 1 个元素汇总列表
- 用 3 个元素汇总列表
- 用 4 个元素汇总列表
- 用 2 个元素汇总列表
我的问题是摘要只包含 2 个元素而不是 4 个。
看起来汇总触发器函数是并行调用而不是顺序调用的,因此当多个触发器非常接近时,最后一个完成的触发器可能是第一个触发而不是最后一个触发的函数之一。
可以使用哪些方法来确保汇总计算具有“所有数据”并且先前运行较慢的汇总计算不会覆盖后面的汇总计算? firebase 函数触发器可以序列化以按照它们启动的顺序执行吗?
理想情况下,我希望避免在突发事件发生时计算摘要 N 次,因此一些解决方案可以在将来的短时间内“安排”摘要,然后在出现新事件时取消并重新安排做个好人。
【问题讨论】:
标签: firebase firebase-realtime-database google-cloud-functions