我已经设置了一个Celery任务,它使用RabbitMQ作为代理,Redis作为后端。运行后我注意到我的Redis服务器仍在使用大量内存。经过检查,我发现每个创建的任务仍然存在密钥。
有没有办法让Celery在收到回复后才清理这些密钥?我知道一些MessageBrokers使用acks,在Celery中是否有相同的redis后端?
答案 0 :(得分:0)
是的,请使用result_expires。请注意芹菜节拍也应该运行,如文档中所述:
内置的定期任务将在此时间后删除结果(celery.backend_cleanup),假设启用了芹菜节拍。该任务每天凌晨4点运行。
答案 1 :(得分:0)
不幸的是,Celery的后端并没有使用它,因此我的项目的最佳解决方案就是在完成之后忘记我的回复。