gpt4 book ai didi

meteor 服务器端批量数据库更改

转载 作者:行者123 更新时间:2023-12-04 05:55:09 25 4
gpt4 key购买 nike

meteor 有什么方法可以在服务器端对已发布的集合进行批量更改吗?...比如更新/插入数百或数千条记录,而无需将每条记录一一发送给所有订阅者?

我正在定期拉取第三方数据,并且只想将所有更新或插入作为一批更新收集到一次拉取中,以便所有客户端都将它作为一个更改包接收,而不是数千个小型更新。一个接一个地执行会在我的应用程序 atm 中造成很大的瓶颈。

如果 meteor 不支持此 atm,那么我是否应该直接对 mongo 进行更新,然后让 meteor 在下一个 mongo 轮询中获取它?

// imagine myChanges array with 1000 items
myChanges.forEach(function(change){
// this will trigger the sync with clients immediately... 1000 times
// currently this will practically hang my server
// i want to gather the changes here instead
MyCollection.update({_id: change.docId}, change);
});

// and trigger the sync here instead

谢谢,雷欧

最佳答案

根据您的应用程序的复杂程度或您有多少发布调用,这可以通过滚动您自己的发布功能来实现。

即而不是

Meteor.publish("myCollection", function() {
return myCollection.find(); } );

创建您自己的发布/游标并为其添加 Hook 。

Meteor.publish("myCollection", function() {
globalObserver = myCollection.find().observe({
added: function(item) {
publication.added(item);
}
// And So on
});

然后,您的批量更新需要以某种方式与此发布功能交互,导致它停止并在更新完成后重新初始化观察者。

关于 meteor 服务器端批量数据库更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19223085/

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