如何调整芹菜设置,以便Redis不使用尽可能多的内存? CELERY_TASK_RESULT_EXPIRES?

时间:2012-09-05 01:28:34

标签: django redis celery

这里有一个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秒)

这是我想要改变的吗?或者我应该研究更多设置?我不确定的另一件事是,如果我添加它,我该如何决定将它设置为“安全”的秒数?

1 个答案:

答案 0 :(得分:0)

我想也许你的芹菜调用者忘记清理结果,这些结果将存储在消息队列服务器中,直到到期。在芹菜中,你必须致电

r.get()

获取结果并在消息队列中清除它。如果您只访问结果而不调用此函数:

r.result

结果将仍然由消息队列服务器保留并消耗你的内存很多!