2012-09-25 54 views
2

我們的流星服務器出現問題。當我們用Meteor.publish/Meteor.subscribe發佈300個左右的項目時,服務器會增加它的內存並最終變成無響應。 我們認爲:通過積極認購 2)製造類似採取 1)監測反應的訂閱數量/內存,,一次發佈」 - 忽略監控meteorjs主動反應連接

任何思考如何任何的服務器端收集的變化上面可以實現呢? 或其他任何提示,調試/改善流星應用性能? 感謝

回答

0

由於流星0.5.1中,有一兩件事你可以做的是,從發佈功能用戶id刪除依賴關係。如果一個發佈函數並不依賴於哪個用戶正在訂閱,那麼Meteor將會緩存數據庫查詢,所以隨着更多的用戶訂閱,它不會變慢。

看到這個流星的博客文章:http://meteor.com/blog/2012/11/20/meteor-051-database-scaling

2

zorlak的回答是好。

一些其他的事情:

你可以做一次性通過通過this.set API編寫自己的自定義發佈的基礎上,_publishCursor代碼發佈。你會做這樣的事情:

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

這確實查詢,向下發送其結果,然後永遠不再對其進行更新。

這就是說,我們希望流星的表現會是這樣,這是不必要的!

我也想從一個應用程序來流星(公開爲驗證訂閱)添加一個簡單的方法來統計(如觀察到的遊標數),但沒有時間呢。

+0

'this.flush()'似乎不再存在於Meteor 0.6.5中。您能否以正確的方式更新您的問題,以便在當前版本的Meteor中執行一次性未追蹤的查詢?也就是說,如果我們知道數據集是靜態的,並且不需要觀看實時數據。 –

+0

我將其更新爲更現代化的API。 –

+0

我注意到您已經添加了您引用的事實統計信息包。這仍然是一年後做一次性/靜態發佈的正確方法嗎? –