问题标签 [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 回答
65 浏览

node.js - 如何在最后一个(x,y)上查询firebase?

我根据投票 ( orderByChild('up')) 列出了一个数组,并喜欢将它们分成页面 ( limitToLast(10*formData.page))。但是,limitToLast()只需要一个属性而不是两个,所以例如,如果我是第 10 页,我会有一个巨大的项目列表......

当然,我可以使用与此类似的功能:

但是这种方法似乎需要先获取整个列表,然后使用 snapshot.forEach 来反转列表,然后再将它们变成列表。假设列表是 4GB,这意味着它需要加载 4GB 的数据才能显示 10 个条目......

0 投票
0 回答
228 浏览

firebase - Google Cloud Functions:如何为单元测试存根 firebase 队列?

如何在 index.js 中存根 firebase 队列构造函数?我已经尝试了上述方法,但仍然调用了 firebase-queue 而不是我的存根。谢谢。

0 投票
1 回答
225 浏览

ios - 当 Firebase 查询删除带有句柄的观察者时,其他观察者不会被调用

我正在监视几个UIViewControllers. 当UIViewControllerdeinit 发生时,我使用句柄删除特定的观察者。现在我注意到,在从 oneUIViewController中删除查询观察者之后,将来UIViewController不会调用 another 上的查询观察者,尽管数据正在更改。请告诉我如何修复它?

更新:我输出到日志、句柄,并且所有内容都正确添加和删除。例如 ProfileViewController 有 33 个句柄,ChatViewController 有 85 个句柄,在 ChatViewController deinit 后,删除了 85 个句柄的观察者,结果发现有 33 个句柄的观察者,但它没有被调用。

更新 1如何知道:-有多少观察者有 firebase 参考?

更新 2

经理人

更新3我做了一个快速的更改,虽然这样做是不对的,但是我在收到句柄后将句柄返回给处理程序,然后我为ViewController分配了一个变量,并且在deinit期间我还删除了观察者。我得到了同样的结果。也就是说,如果我删除了一个带有句柄的观察者,那么第二个就不起作用了。在此之前,我的代码以原始形式工作。

0 投票
0 回答
142 浏览

javascript - Firebase 队列优先级

我是在我的项目中使用firebase-queue的新手,我想知道是否有一种方法可以根据优先级等属性来处理数据。 这是我的数据结构的示例。

在这种情况下,孩子L6PGTI6tRceLkaDbfA4将在之前被处理L6PGTHyZFbM4eBM66Zt & L6PGTI3KNj8x_zHqZQX

0 投票
0 回答
106 浏览

firebase - GCE 上的 Firebase-Queue 正常关闭

这是一个关于在关闭运行在 Google Compute Engine 上的基于 Firebase 队列的应用程序期间处理任务的设计问题。

我正在使用的用例是根据任何给定时间的负载自动扩展队列工作者。具体到我们的项目是我们的任务是长期运行的。

在理想情况下,队列工作者将有机会在运行工作者的虚拟机终止之前完成其当前任务。我们正在与 Google Compute Engine / 实例组合作,以处理我们的队列工作者应用程序的扩展。Firebase-queue 确实提供了一个基于 promise 的方法来关闭队列工作者(即 queue.shutdown())。这将阻止工作人员接受新任务,并允许在解决承诺之前完成正在运行的任务。

我面临的问题是如何让队列工作者在实例终止之前优雅地关闭(这个问题也会在滚动更新期间发生)。一种方法是触发工作程序关闭并让工作程序触发实例关闭,但这似乎不是最好的设计,因为控制权从任何服务首先触发缩减。

GCE 确实提供了一个服务,它会在实例终止之前运行一个关闭脚本,但是,它会在大约 90 秒后强制关闭一个实例,这对我们不起作用。

我对在这里遵循的设计理念/模式感兴趣。任何帮助深表感谢。

0 投票
1 回答
45 浏览

node.js - 节点进程崩溃时重新启动firebase队列

我正在使用 firebase-queue 来运行一些简单的任务。假设一个任务已经被一个工人捡起并且它的状态已经被更新为 in_progress。现在节点崩溃了,worker 不存在了。下次我重新启动节点时,如何确保在重新启动后之前 in_progress 的任务被 firebase-queue 拾取?我正在使用我定义了error_statestart_statefinished_state和.in_progress_stateretries

0 投票
0 回答
525 浏览

firebase - 如何使用 PubSub 一次获取一条消息

我需要我的 onPublish 方法(firebase 端)一次只收到一条消息。

我的代码是这样的:

谷歌云(AppEngine):

火力基地

我需要代码 someAsyncCode 来一个一个地运行消息,有没有办法做到这一点?我在发布者的文档中看到了批处理 maxMessages,但我认为这是在发布者将新消息推送到消息队列时设置限制。因此,如果我将该属性设置为相同,则发布者将推送一个购买一个(gcloud 端),而 onPublish(firebase 端)将获取所有消息,无论它是否正在处理一条消息。

0 投票
0 回答
149 浏览

javascript - Firebase onWrite 云功能不会间歇性运行

多年来,我一直在使用firebase-queue调用作业多年,但最近它开始因事务错误竞争资源而失败,并且存在严重的扩展问题。

所以我迁移firebase-queue到云功能,最初它似乎很快并且非常可扩展。我编写了一个由 onWrite on 连接的简单脚本queue/task/{taskId}。但似乎有时 onWrite 永远不会随机触发。我根本看不到日志中触发的特定作业。

我们正在使用 blaze 计划,函数返回 promise,timelimit 设置为最大值,99.9% 的作业耗时小于 5000ms。

我们每天有大约 5 万次调用,大约 100 个工作没有被触发。这是断断续续的,对此一无所知。一件奇怪的事情是我在日志查看器上看不到任何错误,但在调用图上,我可以看到一些加载错误和连接错误,但仍然不知道它们是什么。任何解决该问题的见解将不胜感激。

0 投票
1 回答
33 浏览

java - 如何从Firebase的for循环一个接一个地显示多个图像

我想开发一个应用程序,它将字符串转换为我已经做过的单词数组。但问题是当我使用for循环和Firebase查询通过thread.sleep(5000)一个接一个地显示来自firebase存储的图像时;它不起作用。它总是只显示最后一个单词的图像和最后一个单词。

这是我的代码:

0 投票
0 回答
247 浏览

firebase - @firebase/database: FIREBASE INTERNAL ERROR: Server Error: The specified payload is too large, please request a location with less data

firebase-queue用来支持一些服务器端任务。在过去的几天里,我们经常看到以下错误。

@firebase/database: FIREBASE INTERNAL ERROR: Server Error: The specified payload is too large, please request a location with less data.

然后最终firebase-queue任务失败并出现以下错误:

@firebase/database:FIREBASE 警告:/queue/tasks/-MZsdfseeUyDJ 处的事务失败:断开连接

我知道这些任务中的每一个都只从 Firebase 实时数据库(一些 KB)中获取少量数据。我不确定是否有许多这样的请求来自不同的firebase-queue工作人员,如果所有这些请求都是批处理的,但它仍然无法在给定时间获取几 MB 的数据。这导致我的应用程序的整个后端基础设施不断失败。此外,firebase然后继续尝试访问这些数据,从而提高我们的下载带宽。

这是从最近几周开始发生的。我进行了一些更改,以便为每个任务获取更小的数据,但我仍然一直在观察这个问题。