Django Celery结果:Django-DB ttributeError:'DisabledBackend'

时间:2017-07-02 14:56:05

标签: django django-celery

我目前正在使用Django DB作为后端测试Django Celery结果。

我已按照此处的文档:http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html#django-celery-results-using-the-django-orm-cache-as-a-result-backend

当我的Django视图调用celery任务时,它会在Django DB中正确添加,并且任务由Celery worker执行。我还可以使用以下代码获取任务ID:

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            res = mailer.delay(
                cd['subject'],
                cd['message'],
                cd.get('email', 'noreply@gmail.com'),
                ['seb.pouplin@gmail.com'])

            cel_taskid = res.task_id
            result = AsyncResult(cel_taskid)
            print(result.state)
            return HttpResponse(cel_taskid)

但是,每当我尝试获取任务状态,状态或ready()标志时,我都会遇到以下异常:

AttributeError:'DisabledBackend'对象没有属性'_get_task_meta_for'

使用Django-DB获取任务详细信息或以其他方式检索它们是否存在任何限制?

提前致谢

1 个答案:

答案 0 :(得分:0)

我可以使用django_celery_results中的TaskResult模型访问Celery任务结果。

最佳解决方案是在任务装饰器中添加(bind=True)以访问任务对象属性。