eal*_*eon 5 python redis celery
我有 Redis 作为代理的芹菜应用程序。
代码由以下循环组成:
running = []
res = add.apply_async([1,2], queue='add')
running.append(res)
while running:
r = running.pop()
if r.ready():
print r.get()
else:
running.insert(0,r)
Run Code Online (Sandbox Code Playgroud)
一切正常,但是当我redis-cli进入 redis 并执行时,keys *
我看到一堆 celery-task-meta 键。
他们为什么不清理?
那些是干什么用的?
——
[编辑]
我已经阅读了 CELERY_TASK_RESULT_EXPIRES 设置。
是否可以在读取结果后立即清理Redis中的任务键,而不是等到到期时间?
来自芹菜文档:
AsyncResult.forget()
Forget about (and possibly remove the result of) this task.
Run Code Online (Sandbox Code Playgroud)
r.get()那么你必须先r.forget()
但是,您不需要清理钥匙。对于,医生说:
CELERY_TASK_RESULT_EXPIRES
默认为 1 天后过期。