【发布时间】:2019-10-03 21:31:43
【问题描述】:
我们在我们的项目中使用 meteor V1.5。我们注意到 publish 和 subscriber 方法的奇怪行为。为subscriber 之一发布来自 KADIRA 的屏幕截图
publish方法
Meteor.publish( 'companyBuiltCourses', companyId => {
return BuiltCourses.find({ company_id: companyId })
});
当我们使用下面的subscriber 并访问xyz 页面时,KADIRA 显示连续获取文档,如屏幕截图所示。 即使我们访问另一个页面,此图表仍保持不变
Template.xyz.onCreated(function() {
Tracker.autorun( () => {
if (Meteor.user()) {
Meteor.subscribe('companyBuiltCourses',Meteor.user().profile.company_id);
}
});
});
当我们使用下面的subscriber 方法并访问xyz 页面时,KADIRA 显示连续获取文档,如屏幕截图所示。 但是当我们访问另一个页面时,这个图表会下降到 0。它不会再获取文档了
Template.xyz.onCreated(function() {
this.autorun( () => {
let self = this;
if(Meteor.user()){
self.subscribe('companyBuiltCourses',Meteor.user().profile.company_id);
}
});
});
对于开发环境,这两种方法都只在需要时获取文档一次。这是 PRODUCTION 问题。
我们远程托管 MongoDB,并在 pm2 上运行生产。我猜不应该有一个连续的提取。
【问题讨论】:
-
您的
BuiltCourses收藏有多大?如果使用发布/订阅模式从服务器到客户端获取数据需要很长时间,您应该考虑将其更改为服务器方法。 -
感谢您的评论。不,获取数据不需要时间。我只担心这个连续图。不应该
标签: node.js performance meteor publish-subscribe