Celery在Django下使用的内存泄漏问题

在django下使用celery作为异步任务系统,十分方便。

同时celery也提供定时任务机制,celery beat。使用celery beat 可以为我们提供 cron,schedule 形式的定时任务。

在django下使用celery beat的过程中,发现了 celery beat进程 占用内存非常大,而且一直不释放。

怀疑其有内存占用不释放的可能。


因为之前使用django的时候,就知道在django中开启DEBUG模式,会为每次的SQL查询 缓存结果。


celery beat 作为 定时任务的timer和heartbeat程序,是长期运行的,而我使用了MYSQL作为存储定时任务的backend。因为每次heartbeat和timer产生的sql查询在开启了DEBUG模式下的django环境中,都会缓存查询结果集。因此 celery beat占用的 内存会一直不释放。在我的线上环境中 达到10G内存占用!


解决: 关掉django的DEBUG模式,在setting中,设置DEBUG=False 即可。

关闭DEBUG模式后的celery beat程序 的内存占用大概 一直维持在150M左右。



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值