这里有一个Celery noob但是,我认为我有一个配置问题,Celery在Redis中放了太多东西
我的目标是尝试减少或优化Redis正在使用的内存量,如果可以的话
我有一个非常大的Django制作东西,Celery的工作“很多”。在我的settings.py中我有
BROKER_BACKEND = "redis"
来自top -p13907
Redis正在使用大量内存(在盒子上它仅供Celery使用):
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13907 redis 20 0 10.5g 3.3g 532 S 0 42.8 109:38.94 redis-server
我发现这个CELERY_TASK_RESULT_EXPIRES设置看起来像我应该添加到我的设置文件中。
默认情况下,从文档中看起来它设置为1天(86400秒)
这是我想要改变的吗?或者我应该研究更多设置?我不确定的另一件事是,如果我添加它,我该如何决定将它设置为“安全”的秒数?
答案 0 :(得分:0)
我想也许你的芹菜调用者忘记清理结果,这些结果将存储在消息队列服务器中,直到到期。在芹菜中,你必须致电
r.get()
获取结果并在消息队列中清除它。如果您只访问结果而不调用此函数:
r.result
结果将仍然由消息队列服务器保留并消耗你的内存很多!