我有一个e django应用程序,它定期调用一系列celery 任务,这些任务使用redis后端来管理一些东西,我不需要存储所有任务的结果。我的redis很快就会被称为 celery-meta-data-some-random-id-string
,包含任务本身及其结果。我想扔掉那些,所以我加了一句 'ignore_result' = True
对于那些我不在乎结果的任务。
我的任务定义为:
@shared_task(name='my.name', ignore_result = True)
def mytask(foo,bar):
//do stuff
return
我尝试将默认行为添加到django.settings中 CELERY_IGNORE_RESULT = True
来自 celery.py
在我的django应用程序中,我加载了如下设置
from django.conf import settings
app = Celery('myapp')
app.config_from_object(settings, namespace='CELERY')
这是我的设置.py
CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'pickle'
CELERY_BROKER_URL = 'redis://0.0.0.0/0'
CELERY_ACCEPT_CONTENT = ['pickle', ] #'json', 'msgpack', 'yaml'
CELERY_BACKEND = 'redis://0.0.0.0/0'
CELERY_RESULT_BACKEND = 'redis://0.0.0.0/0'
CELERY_TIMEZONE = 'Europe/Rome'
使用 Celery Flower
我可以检查任务配置 CELERY_IGNORE_RESULT
变量设置为 True
对于所有这些,所以我认为配置是正确的。
有什么我完全不知道的吗?我试图解决这个问题,定期清理redis,但最好不要存储结果。
暂无答案!
目前还没有任何答案,快来回答吧!