multithreading - 多线程 Firebase 函数

标签 multithreading typescript firebase google-cloud-functions

所以我正在开发一个 Firebase 函数,它接受来自用户的请求并更新这些用户正在收听的分支下的几个节点。

我的问题是,如果该函数同时收到两个客户端请求,则会触发两个函数同时执行和更新数据。

我知道这通常可以通过事务来解决,但我的更新是在多个节点上完成的,而不仅仅是一个值(即计数器)。

在传统的多线程编程中,这个问题是通过锁定代码执行来解决的,因此它只能由一个线程执行,当前线程完成后下一个线程恢复。

这是 Firebase Functions 中的一个选项吗?如果可以,如何实现?

最佳答案

目前任何环境下的 Cloud Functions 中都没有线程,包括 node 和 python。您不应该依赖 Cloud Function 中的进程级别锁定 - 使用数据库事务来确保更新是原子的和一致的。您的每个函数调用都将彼此完全隔离。

关于multithreading - 多线程 Firebase 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53985802/

相关文章:

c++ - 我怎样才能并行化这个求解器代码

c++ - Wxwidgets回调

angular - 如何使用 Protractor typescript 在具有跨度的按钮上单击具有相似元素详细信息的元素

android - 如何解决 java.lang.NoClassDefFoundError 异常?

node.js - Firebase-NodeJS : Domain-Wide Delegation with OAuth2 for Google API

c++ - 防止派生类被破坏

java - 使用 Java IO 读取文件时返回 "impossible"null

node.js - 扩展也是一个函数的 .d.ts 模块

javascript - 如何检查 JSON 对象 ionic2 中的值

firebase - 如何只允许一个管理员用户编写 Firebase 数据库?