2017-04-15 92 views
0

我遇到了一個問題,在運行緩慢的數據庫設置時出現非常複雜的聚合。流星方法/呼叫在30秒後超時

有時候如果它足夠複雜的花費超過30秒,我得到:

Exception while invoking method 'methodName' MongoError: connection 3 to 'IP.IP.IP.IP' timed out 
at Object.Future.wait 

我知道,這不是偉大的,有一些需要超過30秒,但是這就是我的工作。在超時之前,有什麼方法可以設置流星等待時間超過30秒?

+0

除非您處理數以千萬計的文檔,否則可能會使您的腳本更加高效。你爲什麼不發佈代碼,然後我們可以幫助你加快速度? – Sean

+0

我正在處理數以千萬計的文檔,包括$ facet,$ lookup和其他一些密集操作。 –

+0

足夠公平 - 30秒以上的時間似乎仍然很長。你有沒有添加索引到你正在查詢的字段? – Sean

回答

1

在挖掘出問題之後,我找到了答案。在我連接到我指定的URL我的流星的應用程序,我需要一個加入到我的蒙戈網址:

socketTimeoutMS=XXXXX 

我的網址現在看起來像:

MONGO_URL=mongodb://localhost:27017/dbName?socketTimeoutMS=45000 meteor 

這個線程在正確的讓我方向: "Server x timed out" during MongoDB aggregation

我也試過.noCursorTimeout()在我猜測的聚合結束時,沒有做任何事情。