Node.js Firebase管理SDK(nodejs)-实时数据库.update()在大循环中失败
我正在尝试使用admin SDK快速调用ref上的Node.js Firebase管理SDK(nodejs)-实时数据库.update()在大循环中失败,node.js,firebase,firebase-realtime-database,firebase-admin,Node.js,Firebase,Firebase Realtime Database,Firebase Admin,我正在尝试使用admin SDK快速调用ref上的.update——至少每秒500多次。它运行约10-20秒,然后在大约30000次写入时(无具体数字),nodejs服务器完全锁定。添加调试不会显示任何真实的信息,除了在某一点上服务器响应不能跟上请求。这是一种致命的情况,将CPU锁定在100%,需要重新启动应用程序 奇怪的是,调用.set()我无法让它以同样的方式锁定。它将永远没有问题;然而,这显然没有那么有效,因此我在RTB上达到了100%的负载 我已经在水平伸缩,这很好,如果管道不够大,我很
.update
——至少每秒500多次。它运行约10-20秒,然后在大约30000次写入时(无具体数字),nodejs服务器完全锁定。添加调试不会显示任何真实的信息,除了在某一点上服务器响应不能跟上请求。这是一种致命的情况,将CPU锁定在100%,需要重新启动应用程序
奇怪的是,调用.set()
我无法让它以同样的方式锁定。它将永远没有问题;然而,这显然没有那么有效,因此我在RTB上达到了100%的负载
我已经在水平伸缩,这很好,如果管道不够大,我很乐意伸缩。但我不能应付致命的封锁
有人能告诉我为什么这些方法表现不同吗?如果可能的话,我更愿意使用update()
。我甚至不需要等待服务器响应,所以RESTAPI中存在的静默更新非常好,但我认为本机SDK中不存在这种情况
db.ref(loc.set)(数据)
可以永远在一个大循环中运行,但效率低下,并且会导致更高的RTB负载
db.ref(loc).更新(数据)代码>更高效的更新,但最终会失败并锁定整个应用程序