Django Celery Ошибка на сервере Runserver при использовании Redis

В настоящее время я использую django и celery я сделал свою конфигурацию и установил redis и redis действительно активен я проверил с помощью cli также когда я запускаю python manage.py shell и запускаю задачу, она работает отлично, но когда я обращаюсь к задаче, вызывая ее из представления, я получаю эту ошибку

Это моя конфигурация celery, которую я сейчас использую, и я использую Я установил redis с помощью pip, а также cli в системе, но все же я пытался изменить эту конфигурацию, но она работает только если я обращаюсь к задаче, вызывая ее самостоятельно

 import os

from celery import Celery
from django.conf import settings

from Gimsap.settings import CELERY_BROKER_URL

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

BROKER_URL = "redis://localhost:6379/1"

# used redis broker if it exists
app = Celery('Gimsap', namespace='CELERY')

app.config_from_object('django.conf:settings')

# Load task modules from all registered Django app configs.
app.autodiscover_tasks(settings.INSTALLED_APPS)

app.conf.broker_url = BROKER_URL
CELERY_BROKER_URL = BROKER_URL

app.conf.beat_schedule = {

    """'
    Test celery worker
    send_admin_message': {
        'task': 'home.tasks.test_task',
        'schedule': 3,
    },"""
}


@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')

Я занимался этой проблемой в течение нескольких часов, но в конце концов Я убедился, что мой сервер redis работает, что было всегда, но я добавил некоторые настройки в мой Celery.py, добавив ключевое слово borker и url borker, и он начал работать нормально

 import os

from celery import Celery
from django.conf import settings

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

# used redis broker if it exists
app = Celery('Gimsap', broker="redis://localhost:6379", backend="redis://localhost:6379")

app.config_from_object('django.conf:settings')

# Load task modules from all registered Django app configs.
app.autodiscover_tasks(settings.INSTALLED_APPS)
BROKER_URL = "redis://localhost:6379"
broker_url = "redis://localhost:6379"
app.conf.broker_url = BROKER_URL
CELERY_BROKER_URL = BROKER_URL

app.conf.beat_schedule = {

    """'
    Test celery worker
    send_admin_message': {
        'task': 'home.tasks.test_task',
        'schedule': 3,
    },"""
}


@app.task
def debug_task():
    print(f'Request: ')

Как я отладил это, @shared_task не использовал конфигурацию по умолчанию. Поскольку @app.task в celery работал хорошо, когда я понял, что celery не получает доступ к моему серверу redis

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