node经常会遇到程序异常,整个进程就会崩掉,有没有很好的捕获异常的package
话说使用try catch在同步的时候会影响性能,在异步的时候不可用。大神们有没有好的package,能很好的解决这个问题的。
12 回复
没什么特别好的办法
- 流程上promise/a+处理异常就好了
- pm2起多个实例,一个挂掉,不影响其他的
- 1个服务器里最好只起1个pm2 app实例,不然如果一个挂了,会产生雪崩效应(docker是个好东西)
@weierbufan 嗯 关于错误处理参考joyent的一篇文章可以参考下思路:Nodejs错误处理最佳实践(译文: http://code.oneapm.com/nodejs/2015/04/13/nodejs-errorhandling/)( 原文: https://www.joyent.com/developers/node/design/errors)
好好看看8楼那个链接
经验:
- code写好点,各种parse error好好自己捕捉
- 做好Error monitor, 如果进程倒了要能看到log和stack trace
- 应用ls “我没啥好办法。。。服务跪了就重启。。。”
其实有个包 我是在用的 不过不推荐 https://github.com/CrabDude/trycatch 可以做一个大的入口 然后放在那里卡一下,production可以用下,最终目的是好好填坑…
@weierbufan 最好的还是将项目的自动化测试补起来吧。既然异常退出了,肯定是代码出bug了。多进程保护只是亡羊补牢,只是给你尽快修bug缓冲一点点时间而已。生产环境出行worker进程异常退出重启,都是最严重的报警。 自豪地采用 CNodeJS ionic