芹菜ignore_result无法正常工作

时间:2020-06-24 16:52:06

标签: python django redis celery

我有一个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中 并从Django应用程序中的celery.py加载了这样的设置

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,但最好是根本不存储结果。

0 个答案:

没有答案