基于集合状态的流星工作者线程

时间:2015-04-13 17:14:59

标签: meteor

假设我有一个名为data的集合,其结构如下。

{
    _id: ObjectId(),
    status: "new",
    moreData: ""
}

有没有办法在Meteor中创建工作线程,它始终监听data集合而不会失败。当新数据插入到状态为data的集合new时,它会获取数据并对其进行处理,完成后会将数据和状态更新为completed

2 个答案:

答案 0 :(得分:0)

您可以使用collection-hooks包来存档它。您想运行一些代码before.insert来处理它。我假设你使用Meteor作为mini-mongo的数据入口点。如果你有一个REST API,你可以手动运行你的代码来存档它。

关于MattK答案: 首先,我根本不理解投票。当您在服务器上使用observeChanges时,在发布范围之外,您会浪费内存,因为您从数据库中获取最后的X条记录。这种方法虽然不是最优的,但仍有效。

关于使用我不确定的observeChanges的另一个可能问题:我曾经构建了一个实时系统来对mongodb插入进行操作。我使用带有上限集合的定制游标,它能够捕获所有插入以满足我的需求。我虽然使用observeChanges,但我认为可能会遗漏一些文件。如果我获取最后10个文档并且在最后一秒插入了20个,我不知道observeChanges是否会获得所有20个插入的文档,我将运行自己的测试来检查这个潜在的问题。

答案 1 :(得分:-2)

只需在child_process .observeChanges回调中生成.added个帖子即可。 http://docs.meteor.com/#/full/observe_changes