问题标签 [firebase-queue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
229 浏览

node.js - Firebase Queue 一个队列上的多个规范都被执行或选择了错误的规范

我有一个 Firebase 队列和两个规范,在同一个队列上,并且从客户端我正在推送队列,开始状态仅为 read_write_start,要么我的两个规范默认执行,要么执行错误的规范,即“ read_start" 规范被执行

客户端 :

服务器端 :

我不确定我在这里缺少什么文档不清楚

我是否必须为每个规范实例化一个新的队列引用?规范仅用于链接作业吗?

我应该这样做吗

0 投票
2 回答
1106 浏览

firebase - 使用 firebase-queue 返回任务结果

我正在使用 Firebase 开发移动应用程序。在移动应用程序中,我需要根据他/她的手机号码注册一个用户,类似于 Whatsapp。我打算使用 Nexmo 来验证用户的手机号码。验证号码涉及两个步骤。

  1. 将用户手机号码发送到 Nexmo API,成功后返回 request_id 并通过 SMS 向用户手机发送代码
  2. 将代码和 request_id 发送到 Nexmo 以验证号码

我想使用 firebase-queue 来执行这些任务。我想问是否有办法将任务的结果返回给客户端。我在 firebase-queue 文档中没有看到任何这样的例子。基本上,我想添加一个任务以将手机号码发送到 Nexmo API,并希望获取 request_id 作为响应,以便我可以添加另一个任务来验证用户输入的代码。

0 投票
0 回答
190 浏览

firebase - 用于处理高级身份验证的 firebase-queue 安全规则

我打算使用 Firebase Queue 推送任务,以便使用他/她的手机号码(如 Whatsapp 移动应用程序)注册用户。我正在使用第三方服务来验证用户的手机号码。验证过程是一个两步过程

  1. 将用户的手机号码发送到第三方服务,该服务返回一个 request_id 并通过 SMS 将代码发送到用户的手机
  2. 发送用户输入的request_id和code并验证

这就像用户在安装后第一次打开移动应用程序时我会做的第一件事。由于用户尚未注册,因此没有用户的身份验证数据。

我想问一下我可以向 firebase 队列添加什么样的安全规则,这样外人就不能向 firebase 队列添加/删除任务。

我也可以直接在服务器上公开 API,移动应用程序可以使用这些 API 来执行上述验证,但我认为如果有一种方法可以为这种情况下的 firebase 队列添加一些安全规则,那么我宁愿让移动应用程序仅与 firebase 对话。

我创建了以下示例代码 1.队列工作者 2.客户端

目前,任何知道我的应用程序位置的人都可以将任务添加到队列中。由于用户尚未通过身份验证,因此我无法将任何身份验证特定的安全规则添加到 firebase。我正在考虑使用应用程序机密运送移动应用程序,并为 firebase 队列的安全规则设置类似的内容

<appSecret>是移动应用程序附带的内容,每个新任务还包含 appSecret。现在,只有知道 appSecret 的客户端才能将任务添加到 firebase 队列。

0 投票
1 回答
574 浏览

javascript - 如何使用 nodejs 在 firebase-queue 中使用 SpecId 推送任务?

在文档示例中,我们可以看到:

new_user如何使用 specId或其他自定义保存新任务specId

此推送不会触发队列。如果我options从队列中删除,它确实有效(当然)

0 投票
1 回答
896 浏览

firebase - 更改为 Firebase 3 后,我的 Firebase 队列没有做任何事情

几周前我开始使用 Firebase,并且在我的 node.js 服务器代码上运行了 Firebase 队列。客户端可以将消息推送到队列/任务,服务器会解决它们。在 Firebase 更改为版本 3 后,我无法复制此内容,即使 Firebase 队列已更新并且似乎没有其他人有问题。这可能只是我代码中的一个小错误,但几天后我还没有找到它,如果有人可以为我指出,我将不胜感激。

这里我有我的服务器代码。每当将任务添加到队列中时,它都应该打印到控制台,但事实并非如此。最后一行的 push 表明它能够连接到服务器。

这是我的客户代码。推送到队列/任务是成功的。

0 投票
0 回答
261 浏览

firebase - 在 firebase-queue 中使用 numWorkers

我正在使用firebase-queue移动应用程序来处理一些服务器端工作。在此处firebase-queue的文档中,它说我们可以指定一个可选参数,该参数指定可以为 node.js 线程同时运行的工作人员数量。我不完全了解如何在我的应用程序中使用此参数。例如,我在服务器端使用的一件事是在用户首次登录应用程序时向用户发送验证码。现在这可能是未来数百个用户。我有几个问题想澄清一下,以便更好地了解用户numWorkersfirebase-queuenumWorkers

  1. 我什么时候应该为 Firebase 队列配备一名以上的工作人员?
  2. 任何 Firebase 队列的最佳工作人员数量是多少?来自 Java 背景,据说在应用程序中运行越来越多的线程可能会在一定限制后开始成为开销。不确定类似的原则是否适用于此。
  3. 如果我有多个服务于不同的队列specIds,那么我是否需要考虑累积级别而不是每个队列的总工人数。我现在有四个队列。

如果您有关于我上述问题的信息,请告诉我。任何输入表示赞赏。

更新 - 2016 年 6 月 5 日

在玩了更多之后firebase-queue,我意识到numWorkers控制给定规范的多少任务可以同时运行。由于队列工作者不是以异步方式工作,如果给定 specId 的任务需要很长时间才能完成,那么您最终可能会在队列中等待许多任务被拾取。例如,如果在任务处理过程中存在网络元素,则可能需要更长的时间才能完成,并且如果您希望队列中存在大量此类任务,那么您应该在 firebase 中有多个工作人员队列。所以,我现在知道第一个问题的答案了。

我仍然对问题 2 和 3 感到疑惑。我在队列中有一些任务在给定时间可能有数百或数千个,其中一些涉及网络元素,因此它们可能需要相当长的时间才能完成。我不确定让数百名工人排队会产生什么影响。我无法自己测试它,因为我的应用程序仍处于开发状态,而且我目前没有设置来模拟大量此类任务。

0 投票
0 回答
305 浏览

firebase - 在 Firebase 队列中扇出数据的正确方法

我想将数据扇出到 4 个不同的节点。由于firebase事务过程可能会失败,确保所有4个数据都被保存的正确方法是什么?

假设我有 4 个保存数据的函数,每个函数都会调用一个事务。

编辑:

1.使用第一种方法

这种方法使用嵌套的回调函数,并在每次保存成功时调用 progress()。
缺点是,如果其中一个保存过程失败,它将重新保存从第一个到第四个的所有数据。

2.使用第二种方法

这种方法保证所有数据都将被保存。当保存过程失败时,它将从失败的规范重试,而不是从第一个到第四个。但是您认为仅进行4次保存就大材小用了吗?这是正确的方法吗?

在队列/规格中定义规格:

队列代码:

哪种方法是正确的?这个问题不是偏好,因为这两者是完全不同的方法,对性能和有效性都产生巨大影响。

0 投票
2 回答
1046 浏览

node.js - 仅将worker dyno部署到heroku(用于firebase-queue)

我想在 heroku 上的仅工作人员测功机上部署 NodeJS 服务器。我尝试了几种方法,但我总是得到错误:

我的服务器不需要提供文件或 API。部署到 Heroku 的正确方法是什么?具体来说,仅将 firebase-queue 实现部署到 Heroku 的正确方法是什么?

我的服务器专用于处理队列中的工作。它监控 Firebase 位置并对更改做出反应。具体来说,它是一个 firebase-queue 实现,几乎是指南中给出的 my-queue-worker.js 的精确副本

0 投票
0 回答
114 浏览

firebase - 处理小型简单任务时firebase队列的效率

我正在尝试使用 firebase 队列来创建几个工作人员来过滤我的聊天应用程序中的脏话。
但是我读了博客,发现firebase队列会先将数据存储在firebase队列中,然后再提取单词进行过滤。喜欢下面的代码参考这个博客

我的问题

使用多台服务器处理大量简单任务(过滤脏词)时。
有2种方式:

  1. 使用firebase队列,几个队列服务器监听firebase /queue/tasks
  2. 在不使用 Firebase 队列的情况下,使用负载平衡将过滤器工作分配到多个服务器

哪个效率更高?Firebase队列在处理复杂任务时是否更好?</p>

0 投票
0 回答
535 浏览

node.js - Firebase 队列事务断开连接

我在 Heroku nodejs 服务器上使用 Firebase Queue 来执行一些相当复杂的任务。

它工作得很好,除了有时会抛出错误:

当它断开连接时,任务就消失了。即使在规范中指定,也不会发生重试。

总是失败的任务之一的代码

这只是一个简单的任务,必须在 16 秒后删除一个节点。