2014-09-22 49 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