我有一个Node.JS应用程序,它执行MySQL数据库访问,一些HTTP请求,将响应CSV保存到文件,读取同一文件并写入Cassandra。我在Ubuntu 14.04上运行它并且我使用Express来公开执行上述所有任务的Web API。
我有另一个用Node.JS编写的应用程序,它为200个用户调用API。由于它是Node.JS,因此调用是Async。
我使用以下方式运行Express应用程序:
node index.js
当我运行另一个命中Express API的脚本时,脚本可以为200个用户运行,并且有响应:
{"status":200,"message":"Got the data and saved to the DB"}
当我使用Forever运行相同的Express App时:
forever start -w index.js
然后为200个用户运行cron脚本,我得到了
err { [Error: socket hang up] code: 'ECONNRESET' }
当我打开日志文件时,这就是我发现的:
error: restarting script because add changed
error: Forever detected script was killed by signal: SIGKILL
error: Script restart attempt #5
既然App在前台运行时运行良好并且在后台运行时被杀死,那么它是否需要做一些关于为守护进程分配多少资源的事情?
我应该启动服务器吗?或者有什么方法可以为Express App分配更多资源吗?
答案 0 :(得分:3)
通过提取新代码,您似乎无法更改文件或文件属性。
尝试为隐藏的子目录配置.foreverignore,如此处所述
https://github.com/foreverjs/forever/issues/235
如果您无法忽略或停止更新这些文件,则需要永久停止使用以观看文件更新
我可以推荐http://supervisord.org/在Linux机器上运行nodejs app