2

我们的流星服务器有问题。当我们使用 Meteor.publish/Meteor.subscribe 发布大约 300 个项目时,服务器会增加其内存并最终变得无响应。我们想到了:1)监控一个活跃订阅所占用的反应订阅数量/内存2)做类似的事情,一次发布” - 忽略服务器端集合的变化

关于如何完成上述任何一项的任何想法?或任何其他调试/提高流星应用程序性能的技巧?谢谢

4

2 回答 2

2

zorlak 的回答很好。

其他一些事情:

您可以通过 API 编写自己的自定义发布者this.set,基于_publishCursor. 你会做这样的事情:

Meteor.publish("oneTimeQuery", function () {
  MyCollection.find().forEach(function (doc) {
    sub.added("collectionName", doc._id, doc);
  });
  sub.ready();
});

这会进行查询,将其结果向下发送,然后不再更新。

也就是说,我们希望 Meteor 的表现是这样的,这是不必要的!

我还想添加一种简单的方法来从应用程序获取统计信息(如观察到的光标数)到 Meteor(作为经过身份验证的订阅公开),但还没有时间。

于 2012-12-14T00:49:19.680 回答
0

从 Meteor 0.5.1 开始,您可以做的一件事是从发布函数中删除对 userId 的依赖。如果发布函数不依赖于订阅的用户,那么 Meteor 将缓存 db 查询,这样它就不会随着更多用户订阅而变慢。

请参阅这篇 Meteor 博客文章: http: //meteor.com/blog/2012/11/20/meteor-051-database-scaling

于 2012-12-14T00:37:17.737 回答