2014-09-22 85 views
6

我用Meteor創建的項目有一個內存泄漏,在一個或兩個月的過程中緩慢累積。在發現漏洞之後的幾天,我拋出了毛巾,只是增加了一個月發生一次的自動重啓。是的,這是不好的做法,等等。如何從Meteor.js內重新啓動Meteor服務器

有沒有一種方法可以簡單地從服務器的代碼庫中重新啓動?理想情況下,這也會觸發連接客戶端的刷新(與常規部署更新類似)。

然後我假設這個命令可以嵌套在一個很好的JS超時函數中。

+2

我想象的那樣簡單'process.exit()'應該做的工作,因爲你的應用程序可能會用反正自動重新啓動功能的環境中運行。 – 2014-09-22 10:08:15

+1

您是否嘗試過使用https://kadira.io/來查找問題? – zeroasterisk 2014-09-25 13:29:38

回答

3

apendua提供的答案工作。這是一個徹頭徹尾的黑客攻擊,並不是對大多數情況下推薦的,但是對於長期內存泄漏很有用。

將這個你的啓動腳本中:

var restartFrequency = 1000 * 60 * 24; // 1 day (1000 millsec * 60 min * 24 hour) 
setTimeout(function(){ 
    process.exit(); 
}, restartFrequency); 
+0

1000毫秒== 1秒。你的比賽應該是'1000 * 60 * 60 * 24'=> 1s * 60(== 1分鐘)* 60(== 1小時)* 24(== 1天) – rkstar 2015-10-01 16:28:59