gpt4 book ai didi

node.js - 你将如何在 Meteor 中进行繁重的处理?

转载 作者:搜寻专家 更新时间:2023-10-31 23:25:22 27 4
gpt4 key购买 nike

我有一个 meteor 应用程序,目前正在从 Twitter 中提取数据,随后进行一些操作,然后将文档插入集合中。假设我永远运行这个过程,但不想阻止事件循环,有什么解决方案吗?

注意:我知道node.js是单线程的,meteor不支持cluster等包,因为它需要sticky session。我能想到的唯一解决方案是添加一个服务器,专门处理来自 Twitter 的数据并将请求转发到该服务器,但我不再有使用 Meteor 或 Node 的情况。

帮助将不胜感激。

最佳答案

事实是,虽然 javascript/node/meteor 可能能够进行处理,但您自己真的不想这样做。让我给出一些观察结果和一个个人例子:

  • 您的应用完全与延迟有关。如果您的一个请求因为陷入紧密循环而需要很长时间才能完成,它会影响当时连接到您服务器的所有其他客户端。如果发生这种情况,每个人的延迟都会增加。 (这是为了确保您的代码中没有紧密循环)
  • Javascript(语言)对数值的支持非常简单。 (你基本上得到了一个 double)。 floatlongintbyte 之类的东西都是为了让你尽可能快地执行紧密循环可能的。如果您可以用与它最匹配的原始类型表示一个值,您将获得很大的改进。 (这是将您的数据处理提取到适合数据处理的语言的情况)

我正在制作一个应用程序原型(prototype),该应用程序必须对数据进行一些聚合。我使用 setInterval 回调在 meteor 中触发它,每次大约需要 2 秒才能完成。在我自己的开发机器上我并没有真正注意到它(因为 meteor 应用程序非常有效地隐藏了延迟问题)。我一部署它并开始查看日志,就意识到没有一个用户对任何请求的延迟低于 4 秒。这是糟糕的客户体验。

我将数字运算提取到一个小型 clojure 应用程序中。所有集成都是通过在 mongo 数据库中插入和读取记录进行的,clojure 代码有一些定时事件每隔几秒触发一次,执行与之前在 meteor 中完全相同的计算。

在 clojure 中,这些计算现在总共花费不到 100 毫秒(相比之下,在 meteor 中为 2-4 秒)。

回到您的问题:听起来您的应用程序没有用户界面?如果是这样,您最好将其保留在 meteor 中,因为它非常适合 Web UI。但这不是 headless 应用程序的正确技术,在我看来你拥有这种技术。

关于node.js - 你将如何在 Meteor 中进行繁重的处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com