【发布时间】:2015-12-10 18:55:41
【问题描述】:
作为流星应用程序的一部分,我有一个服务器端,它通过对集合的插入/更新获取信息的 POST 消息以提供给 Web 客户端。到目前为止,一切都很好。但是,有时这些更新可能相当大(每 5 秒一次 50K 记录)。在我开始使用批处理插入包,然后使用 Mongo 的低级 batch.find.update() 和 batch.execute() 之前,我很难跟上这一点。
但是,即使有 50K 记录,仍然有大量的处理在进行(它会进行一些计算、分析等)。我希望能够“线程化”该逻辑,以便主事件循环可以继续进行。但是,我不确定是否有一种真正简单的方法可以在 Meteor 中为此创建“真实”线程。因此,我想知道至少“批处理”工作的最佳/正确方法,以便每 N(例如 1K 左右)记录我可以释放事件循环以处理其他事件(例如某些客户端 DDP消息等)。然后再做 1K 记录,等等,直到完成我需要的许多记录。
我认为解决方案在于使用 Fibers/Futures——这似乎是 Meteor 的方式——但我并不肯定这是正确的或像“setTimeout()”和/或“setImmediate( )”更合适。
TIA!
【问题讨论】: