我正在使用firebase-queue
移动应用程序来处理一些服务器端工作。在此处firebase-queue
的文档中,它说我们可以指定一个可选参数,该参数指定可以为 node.js 线程同时运行的工作人员数量。我不完全了解如何在我的应用程序中使用此参数。例如,我在服务器端使用的一件事是在用户首次登录应用程序时向用户发送验证码。现在这可能是未来数百个用户。我有几个问题想澄清一下,以便更好地了解用户numWorkers
firebase-queue
numWorkers
- 我什么时候应该为 Firebase 队列配备一名以上的工作人员?
- 任何 Firebase 队列的最佳工作人员数量是多少?来自 Java 背景,据说在应用程序中运行越来越多的线程可能会在一定限制后开始成为开销。不确定类似的原则是否适用于此。
- 如果我有多个服务于不同的队列
specIds
,那么我是否需要考虑累积级别而不是每个队列的总工人数。我现在有四个队列。
如果您有关于我上述问题的信息,请告诉我。任何输入表示赞赏。
更新 - 2016 年 6 月 5 日
在玩了更多之后firebase-queue
,我意识到numWorkers
控制给定规范的多少任务可以同时运行。由于队列工作者不是以异步方式工作,如果给定 specId 的任务需要很长时间才能完成,那么您最终可能会在队列中等待许多任务被拾取。例如,如果在任务处理过程中存在网络元素,则可能需要更长的时间才能完成,并且如果您希望队列中存在大量此类任务,那么您应该在 firebase 中有多个工作人员队列。所以,我现在知道第一个问题的答案了。
我仍然对问题 2 和 3 感到疑惑。我在队列中有一些任务在给定时间可能有数百或数千个,其中一些涉及网络元素,因此它们可能需要相当长的时间才能完成。我不确定让数百名工人排队会产生什么影响。我无法自己测试它,因为我的应用程序仍处于开发状态,而且我目前没有设置来模拟大量此类任务。