当node.js停止运行时,如何自动将其恢复?
由于节点基本上是一个进程,当出现严重错误时,整个应用程序都会死掉 我现在有两个基于express构建的应用程序,我正在使用一些手动方法来防止延长停机时间(process.on('uncaughtException')和一个自定义心跳监视器) 社区有什么建议吗? 最佳实践?框架 谢谢! A使用类似 或使用 只需当node.js停止运行时,如何自动将其恢复?,node.js,Node.js,由于节点基本上是一个进程,当出现严重错误时,整个应用程序都会死掉 我现在有两个基于express构建的应用程序,我正在使用一些手动方法来防止延长停机时间(process.on('uncaughtException')和一个自定义心跳监视器) 社区有什么建议吗? 最佳实践?框架 谢谢! A使用类似 或使用 只需npm链接,然后sudo supervisor server.js 这些类型的库还支持热重新加载。您可以从命令行使用一些节点服务,它们作为子进程为您运行节点服务。还有一些人希望您编写代码来重
npm链接
,然后sudo supervisor server.js
这些类型的库还支持热重新加载。您可以从命令行使用一些节点服务,它们作为子进程为您运行节点服务。还有一些人希望您编写代码来重新加载自己
理想情况下,您希望向故障安全的全面负载平衡器过渡。如果负载平衡器中的一个节点进程崩溃,您希望它安静地重新启动,并保存所有连接和数据
就我个人而言,我会推荐supervisor
用于开发(它是由isaacs编写的!),并为您真正的生产服务器推荐一个完整的负载平衡器(nginx或node)
当然,您已经并行运行了多个节点服务器进程,因为您关心跨多个核心的扩展,对不对 尝试查看模块。使用
“一个简单的CLI工具,用于确保给定脚本连续运行(即永久运行)”
只需使用npm安装它
npm install forever
和类型
forever start app.js
我也强烈推荐
永远。我昨天用过它,它就像微风一样:
安装npm永远安装
启动你的应用程序永远启动myapp.js
检查其是否工作永久列表
尝试删除你的应用程序:
ps
获取myapp.js pid并运行kill您可以尝试使用Fugue,一个类似于Spark或Unicorn的node.js库:
Fugue可以管理任何node.js服务器类型,而不仅仅是web服务器,它是作为node.js脚本而不是CLI命令设置和配置的,因此普通node.js构建和部署工具链可以使用它。如果您使用的是Ubuntu,则可以使用upstart(默认安装)
$cat/etc/init/my_app.conf
说明“我的应用程序”
作者“我”
在上启动(本地文件系统和网络设备启动IFACE=eth0)在上停止
关闭
重生
exec sh-c“env NODE_env=production NODE/path/myapp/app.js>>/var/log/NODE.log 2>&1”
“重生”意味着如果应用程序死亡,它将重新启动
启动应用程序
启动我的应用程序
对于其他命令
人工初始化