egg 定时任务 内存泄漏?????
发布于 5 年前 作者 linkenliu 4088 次浏览 来自 分享

egg 自带定时任务 在Ubuntu系统上内存泄漏,正常运行应该有2g多内存,我只要把定时任务已开启,立马只剩下100M了,但我本地mac运行是正常的。哎… 11111.png

6 回复

本地mac正常,但是数据或者环境配置一样吗?检查代码是不是某个函数的某个if判断后忘记加return了

@heguangda 要是忘了return还好, 可是是同一份代码。

@linkenliu 感觉会不会是定时器1,2,4,8,16,32.。。。。这样的不停被调用了。。。我之前也是出现这种情况,本地代码可以,上线代码内存暴涨,后来因为是本地代码的数据模拟时某个数组的长度是大于1的,线上的数据库数组长度是0,然后导致定时器指数增加。。然后导致内存爆涨,所以感觉你也可以检查一下代码。

之前写过一个定时任务,while 条件下从数据库取数据处理,在判断数据是否取完的时候条件错了导致循环调用无法结束,内存 100%,其实就是在循环里修改循环判断条件,就导致了混乱。供参考。
是不是可能本地启动因为 env 等原因连接的 db 等和线上的不同,所以导致了条件判断的不同

不要在这里空猜,接个 AliNode 直接看内存里面是啥不就知道了。 99% 的情况是你的代码逻辑问题。

定时任务是不会有泄漏的。你的问题需要在内存异常时抓一个堆快照,分析下堆快照中内存主要耗费在哪里。

回到顶部