Нет такого транспортного RPC с RabbitMQ в Celery & Django - PullRequest
0 голосов
/ 02 июля 2019

Сельдерей: версии 4.3.0 (ревень) и Python 3.7.

Я пытаюсь запустить сельдерея:

сельдерей -A имя_производителя -l информация

Я получаю следующую ошибку:

KeyError: 'No such transport: rpc'

Мой конфиг сельдерея в Django:

LATE_RETRY_QUEUE_NAME = 'late_retry'
FAIL_AUDIT_QUEUE_NAME = 'fail_audit'

# Celery configs
CELERY_BROKER_URL = 'rpc://guest:guest@localhost:5672'
CELERY_RESULT_BACKEND = 'rpc://guest:guest@localhost:5672'
CELERY_TASK_DEFAULT_QUEUE = 'default'
CELERY_QUEUES = {
    Queue(LATE_RETRY_QUEUE_NAME, routing_key=LATE_RETRY_QUEUE_NAME),
    Queue(FAIL_AUDIT_QUEUE_NAME, routing_key=FAIL_AUDIT_QUEUE_NAME)
}

Конфигурация Celery является стандартной из документации:

celery.py (/proj/proj_name/celery.py)

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

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

app = Celery('proj_name')

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

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


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

init .py (/proj/proj_name/init.py) [Игнорировать пропущенные подчеркивания, форматировать здесь нельзя]

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

__all__ = ('celery_app',)

Что не так?

...