首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流星性能问题

流星性能问题
EN

Stack Overflow用户
提问于 2019-05-16 14:53:01
回答 1查看 41关注 0票数 0

我们在我们的项目中使用meteor V1.5。我们注意到了publishsubscriber方法的一种奇怪行为。在KADIRA为其中一个subscriber发布屏幕截图

publish

代码语言:javascript
复制
Meteor.publish( 'companyBuiltCourses', companyId => {  
    return BuiltCourses.find({ company_id: companyId })
});

当我们在subscriber下面使用并访问xyz页面时,KADIRA显示了对文档的连续抓取,如屏幕截图所示。,即使我们访问了另一个页面,这个图仍然是相同的

代码语言:javascript
复制
Template.xyz.onCreated(function() {
   Tracker.autorun( () => {
     if (Meteor.user()) {
        Meteor.subscribe('companyBuiltCourses',Meteor.user().profile.company_id);
     }
   });
});

当我们使用下面的subscriber方法并访问xyz页面时,KADIRA显示了对文档的连续抓取,如屏幕快照所示。,但是当我们访问另一个页面时,这个图会下降到0。它不会再获取文档了,

代码语言:javascript
复制
Template.xyz.onCreated(function() {
   this.autorun( () => {
     let self = this;
      if(Meteor.user()){
        self.subscribe('companyBuiltCourses',Meteor.user().profile.company_id);
     }
   });
});

用于开发环境的,这两种方法在需要时只获取一次文档。这就是生产问题.

我们远程托管MongoDB,并在pm2上运行生产。我想不应该有连续的抓取。

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 21:02:33

由于您提供的代码非常简单,所以很难判断到底发生了什么。我唯一能想到的是,跟踪器函数被反复调用。所以问题是,是什么原因造成的?

这段代码:Meteor.user().profile.company_id建议您在user集合中根据用户的配置文件存储数据。这并不好,因为用户可以从控制台修改自己的数据,帐户系统有时也会修改用户记录,这可能会影响订阅次数。无论如何,我建议将相关数据存储在单独的集合中,该集合可以由Meteor.userId()键控。我不确定这是不是这个问题的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56171352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档