- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 meteor 应用程序,目前正在从 Twitter 中提取数据,随后进行一些操作,然后将文档插入集合中。假设我永远运行这个过程,但不想阻止事件循环,有什么解决方案吗?
注意:我知道node.js是单线程的,meteor不支持cluster等包,因为它需要sticky session。我能想到的唯一解决方案是添加一个服务器,专门处理来自 Twitter 的数据并将请求转发到该服务器,但我不再有使用 Meteor 或 Node 的情况。
帮助将不胜感激。
最佳答案
事实是,虽然 javascript/node/meteor 可能能够进行处理,但您自己真的不想这样做。让我给出一些观察结果和一个个人例子:
double
)。 float
、long
、int
、byte
之类的东西都是为了让你尽可能快地执行紧密循环可能的。如果您可以用与它最匹配的原始类型表示一个值,您将获得很大的改进。 (这是将您的数据处理提取到适合数据处理的语言的情况)我正在制作一个应用程序原型(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/
我是一名优秀的程序员,十分优秀!