假设我有一个名为data
的集合,其结构如下。
{
_id: ObjectId(),
status: "new",
moreData: ""
}
有没有办法在Meteor中创建工作线程,它始终监听data
集合而不会失败。当新数据插入到状态为data
的集合new
时,它会获取数据并对其进行处理,完成后会将数据和状态更新为completed
答案 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