CNode

捕捉网络异常,由于没有及时request.end()导致内存持续飙升的问题

问答
Jjiangliqin发布于10 年前最后回复10 年前4 回复3473 浏览0 收藏

uncaughtException虽然能捕捉到网络异常,但不推荐用在异常可能频繁出现的地方,网络异常就是典型例子,因为这会造成网络连接没及时关闭,无法及时被gc,内存也无法释放,随着时间推移,系统内存会一直升高... 请教一下大家,用domain来捕捉网络异常的话,会出现这种现象吗?

查看回复

回复 (4)

Y
yjhjstz#1·10 年前

也是无能为力呢,因为也只是返回 err, 并没有上下文。

J
jiangliqin#2·10 年前
引用 yjhjstz也是无能为力呢,因为也只是返回 err, 并没有上下文。

@yjhjstz 我刚在本地加了domain测试了下,以前用request.on('error')无法捕捉而用uncaughtException来捕捉的异常, 现在可以正常被request.on('error')监听了,这样能够request.end()了

Y
yjhjstz#3·10 年前

这个简单的 case 是可以的,但看看这个 https://cnodejs.org/topic/516b64596d38277306407936

J
jiangliqin#4·10 年前
引用 yjhjstz这个简单的 case 是可以的,但看看这个 https://cnodejs.org/topic/516b64596d38277306407936

@yjhjstz 恩,这个我看过,貌似还是讲domain的用法和缺点,并没有提出导致内存溢出的解决方案吧?

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