Celery中是否可以通过命令行删除所有以前的任务结果?我所能找到的所有参考文献purge
,但这似乎都不是任务结果。我发现的其他解决方案包括使用芹菜节拍来定期删除它,但我正在寻找一种一次性的命令行解决方案。
我使用Celery 4.3.0。
答案 0 :(得分:1)
因此,根据以下答案:How do I delete everything in Redis?
使用redis-cli:
FLUSHDB - Removes data from your connection's CURRENT database.
FLUSHALL - Removes data from ALL databases.
Redis文档:
flushdb
flushall
例如,在您的外壳中:
redis-cli flushall
并尝试清除芹菜。 来自celery doc:http://docs.celeryproject.org/en/latest/faq.html?highlight=purge#how-do-i-purge-all-waiting-tasks
答案 1 :(得分:1)
我想这就是您要寻找的东西
https://github.com/celery/celery/issues/4656
引用
https://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_expires
我将其设置如下:
RESULT_EXPIRE_TIME = 60 * 60 * 4 # keep tasks around for four hours
...
celery = celery.Celery('tasks',
broker=Config.BROKER_URL,
backend=Config.CELERY_RESULTS_BACKEND,
include=['tasks.definitions'],
result_expires=RESULT_EXPIRE_TIME)