Celery:Redis作为经纪人离开任务元键

时间:2015-12-07 06:44:01

标签: 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)

一切正常,但当我redis-cli进入redis并执行keys *时 我看到一堆celery-task-meta键。

他们为什么不清理? 这些是为了什么?

-

[编辑]

我已阅读有关CELERY_TASK_RESULT_EXPIRES设置的信息 是否可以在读取结果后立即清除Redis中的任务键,而不是等到到期时间?

2 个答案:

答案 0 :(得分:2)

来自Celery Doc:

AsyncResult.forget()
   Forget about (and possibly remove the result of) this task.

您必须先r.get()然后r.forget()

但是,你不需要清理钥匙。 因为,doc说:

CELERY_TASK_RESULT_EXPIRES

默认是在1天后过期。

答案 1 :(得分:0)

我遇到了同样的问题。为我解决的问题是在我的celery.py文件中添加了app.autodiscover_tasks()

相关问题