node的容错是如何处理的?
因为node是单线程,并且使用大量的回调, 所以有一点错误的话就会导致node程序崩掉, 虽然使用try catch 可以在一定程度上有效的捕获异常,但是有没有更好的方法或者机制?
8 回复
IBM Express的web framework里有domain中间件来处理未捕获的异常,和避免 进程退出。 但是,我推荐使用forever或pm2来实现,进程终止 后 再 重启 的工作。
@i5ting 我之前看新闻说:Express被strongloop公司管理。然后,strongloop又被IBM收购。所以,我以为Express是IBM的呢。
@stuartZhang @i5ting 还是说 strongloop 比较合适吧。。。ibm 太大了。 话说 domain 模块已经不推荐使用了。express 的源码里面用了 domain?
node 的容错目前我见过的最好的方案是这样的。 https://npm.taobao.org/package/graceful 这个模块在你的server抛错之后,会暂停所有新请求的连接,然后再存活一个 timeout 时间,之后退出。而非一抛错马上退出