CNode

node的容错是如何处理的?

问答
Rrongchanghai发布于10 年前最后回复10 年前8 回复5154 浏览0 收藏

因为node是单线程,并且使用大量的回调, 所以有一点错误的话就会导致node程序崩掉, 虽然使用try catch 可以在一定程度上有效的捕获异常,但是有没有更好的方法或者机制?

查看回复

回复 (8)

S
stuartZhang#1·10 年前

IBM Express的web framework里有domain中间件来处理未捕获的异常,和避免 进程退出。 但是,我推荐使用forever或pm2来实现,进程终止 后 再 重启 的工作。

S
stuartZhang#4·10 年前
引用 i5ting@stuartZhang express不是ibm的

@i5ting 我之前看新闻说:Express被strongloop公司管理。然后,strongloop又被IBM收购。所以,我以为Express是IBM的呢。

A
alsotang#6·10 年前

@stuartZhang @i5ting 还是说 strongloop 比较合适吧。。。ibm 太大了。 话说 domain 模块已经不推荐使用了。express 的源码里面用了 domain?

A
alsotang#7·10 年前

node 的容错目前我见过的最好的方案是这样的。 https://npm.taobao.org/package/graceful 这个模块在你的server抛错之后,会暂停所有新请求的连接,然后再存活一个 timeout 时间,之后退出。而非一抛错马上退出

参与回复
登录后即可参与回复。登录