我已经编写了一些服务器端代码来使用firebase-queue](https://github.com/firebase/firebase-queue)来实现可伸缩性,但是,随着Firebase for Firebase的发布(以及它对自动可扩展性的承诺),我想知道是否Queue有什么需要......有没有人将这两种技术结合起来以达到更大的目的?特别是像@Frank van Puffelen这样的Firebase开发者,函数会替换firebase-queue吗?
答案 0 :(得分:11)
firebaser here
我不确定firebase-queue是否过时。时间将不得不说明。
但我们现在肯定在很多情况下使用Cloud Functions for Firebase,我们以前使用过firebase-queue和一个节点工作进程。不再需要使用我们自己的Node.js进程可以提高开发速度。事实证明,云功能的自动扩展已经非常宝贵。
将云功能与firebase-queue结合起来似乎不合逻辑。如果您只是将节点附加到数据库并在函数中使用它们,则无需额外的库就可以获得相同的行为。
更新:我们的一位数据库工程师刚刚提供了一个功能无法替换队列的方案。进行备份时,工作人员需要安装和卸载远程磁盘。该任务可能可以在云功能中实现,在独立的自我管理节点流程中更容易实现。
答案 1 :(得分:7)
我认为Firebase云功能不应该使firebase-queue过时,我认为想要将firebase-queue与云功能结合起来并不合理,如@@ Frank van Puffelen所说。
Firebase队列提供的不仅仅是任务监听firebase和启动任务的方式。它为各方之间的通信提供协议,用于分配和响应任务请求,协调失败任务的重试,报告进度,状态和其他元数据。这允许的任务之一是任务链。
我认为Firebase或第三方开发firebase-functions-queue软件包会扩展firebase-functions并允许你编写一个与firebase-queue具有相同签名的firebase云功能。像这样:
const functions = require('firebase-functions');
const functions-queue = require('firebase-functions-queue'); //extends firebase-functions with onQueue function
admin.initializeApp(functions.config().firebase);
functions.database.ref('/queue').onQueue(options,function(data,progress,resolve,reject){
...
})
这个新的包就像firebase-queue一样工作并使用相同的元数据和选项,除了它不需要处理多个工作进程的管理,因为云功能已经自动无缝地完成了这项工作。
这将具有以下优点:
答案 2 :(得分:5)
我认为它不如说取代firebase-queue一样简单。理想情况下,您可以将函数用于firebase-queue的大多数常见用例。
但是,无论如何,使用firebase-queue可能还有一些合理的理由。