具有两种不同应用的流星观测器
Meteor observer with two different applications
因为更改的数据(由应用程序 A 插入)需要实时显示在应用程序 B 中,我们决定使用 .find().observe(...)
。
看起来像:
App A -> Insert -> mongodb <- observe -> publish -> Display App B
这工作正常,但在插入 A 和显示 B 之间有大约 3-5 秒的延迟。我该如何更改它?
最初我认为,Oplog-Observe-Driver 在 Meteor > Version 1 中是默认的,并且会实时做出反应。它仍然是 POLL 还是有其他延迟的原因????
感谢您的解释。
如果您使用的是 Oplog,那么更改会立即生效。如果您使用的是轮询,那么它会像您所写的那样花费几秒钟。
您需要正确设置 MONGO_OPLOG_URL 才能使其正常工作。 (当然,您的 MongoDB 需要启用 Oplog。)
此外,如果您处于反应式上下文中,则无需使用 find().observe()
,find()
就足够了。在服务器上,您可能需要 find().observe()
,具体取决于您在做什么。
你用过DDP.connect
吗?您还必须使用 onReconnect
Remote = DDP.connect('http://yourremoteserver');
MyCollection = new Mongo.Collection('same_name', Remote);
// do whatever you need with collection
let watchCollection = function (query={}, project={}) {
return MyCollection.find(query, project).observe({
changed: function () { console.log('Something changed!') }
});
}
DDP.onReconnect(watchCollection);
因为更改的数据(由应用程序 A 插入)需要实时显示在应用程序 B 中,我们决定使用 .find().observe(...)
。
看起来像:
App A -> Insert -> mongodb <- observe -> publish -> Display App B
这工作正常,但在插入 A 和显示 B 之间有大约 3-5 秒的延迟。我该如何更改它?
最初我认为,Oplog-Observe-Driver 在 Meteor > Version 1 中是默认的,并且会实时做出反应。它仍然是 POLL 还是有其他延迟的原因????
感谢您的解释。
如果您使用的是 Oplog,那么更改会立即生效。如果您使用的是轮询,那么它会像您所写的那样花费几秒钟。 您需要正确设置 MONGO_OPLOG_URL 才能使其正常工作。 (当然,您的 MongoDB 需要启用 Oplog。)
此外,如果您处于反应式上下文中,则无需使用 find().observe()
,find()
就足够了。在服务器上,您可能需要 find().observe()
,具体取决于您在做什么。
你用过DDP.connect
吗?您还必须使用 onReconnect
Remote = DDP.connect('http://yourremoteserver');
MyCollection = new Mongo.Collection('same_name', Remote);
// do whatever you need with collection
let watchCollection = function (query={}, project={}) {
return MyCollection.find(query, project).observe({
changed: function () { console.log('Something changed!') }
});
}
DDP.onReconnect(watchCollection);