Использование 'group()' привело к ошибке "No result backend is configured." в Django

В приведенном ниже коде я использую Celery 5.2.7 и django-celery-results в Django:

# "core/celery.py"

import os

from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')

app = Celery('core')

app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()

@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')
# "core/settings.py"

INSTALLED_APPS = [
    # ...
    'django_celery_results'
]

CELERY_RESULT_BACKEND = 'django-db'

CELERY_CACHE_BACKEND = 'django-cache'
# "store/tasks.py"

from celery import shared_task

@shared_task
def add(x, y):
    return x + y

Затем, я запустил Celery с командой ниже:

celery -A core worker --pool=solo -l info

Затем, вызывается add.delay(3, 4) в test() как показано ниже:

# "store/views.py"

from .tasks import add
from django.http import HttpResponse

def test(request):

    add.delay(3, 4) # Here
    
    return HttpResponse("Test")

Тогда, я смог правильно получить результат ниже:

Task store.tasks.add[...] succeeded in 0.04s: 7 # Here

Но при вызове group(add.delay(i, i) for i in range(10))().get() в test(), как показано ниже:

# "store/views.py"

from celery import group
from django.http import HttpResponse

def test(request):

    group(add.delay(i, i) for i in range(10))().get() # Here
    
    return HttpResponse("Test")

Я получил ошибку ниже:

NotImplementedError: Не настроен бэкенд результатов. Пожалуйста, обратитесь к документацию для получения дополнительной информации.

Итак, я попробовал si() как показано ниже:

# "store/views.py"

from celery import group
from django.http import HttpResponse

def call_test(request):
             # ↓ Here
    group(add.si(i, i) for i in range(10))().get()
    
    return HttpResponse("Call_test")

Но, я все еще получаю ту же самую ошибку ниже:

NotImplementedError: Не настроен бэкенд результатов. Пожалуйста, обратитесь к документацию для получения дополнительной информации.

Итак, как я могу решить вышеуказанную ошибку, чтобы использовать group()?

Вернуться на верх