Я использую Django 1.10 и Celery 4.
Я нашел утечки в документации Celery :(
Конфигурация рабочего процесса выполнена хорошо, и он работает нормально (я вижу, что рабочий процесс подключен к веб-мини-серверу RabbitMQ). Но мои задачи не могут подключиться к RabbitMQ для публикации своих сообщений.
settings.py
CELERY_BROKER_URL = 'amqp://dev:dev@localhost/dev_virtualhost'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
celery.py
from __future__ import absolute_import
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
app = Celery('dev_app')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
tasks.py
from celery import shared_task
@shared_task(queue='data_to_write')
def test_task(data):
open('/tmp/test', 'w').write(data)
Из оболочки Django я запускаю этот код и терплю неудачу :(
test_task.delay('hello world')
AccessRefused: (0, 0): (403) ACCESS_REFUSED — вход в систему был отклонен с использованием механизма проверки подлинности AMQPLAIN. Подробности смотрите в лог-файле брокера.
В журналах RabbitMQ я вижу, что учетные данные — гость: гость, а не dev: dev, как я написал в settings.py.
Где моя ошибка? Спасибо