Django + Celery 4 грешни настройки

Използвам Django 1.10 и Celery 4.

Открих течове в документацията на Celery :(

Работната конфигурация е добре направена и работи добре (виждам работника, свързан в RabbitMQ webmin). Но моите задачи не могат да се свържат с RabbitMQ, за да публикуват своите съобщения.

settings.py

CELERY_BROKER_URL = 'amqp://dev:dev@localhost/dev_virtualhost'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

celina.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)

От Shell на Django стартирам този код и не успявам :(

test_task.delay('hello world')

AccessRefused: (0, 0): (403) ACCESS_REFUSED - Влизането беше отказано чрез механизъм за удостоверяване AMQPLAIN. За подробности вижте лог файла на брокера.

В регистрационните файлове на RabbitMQ виждам, че идентификационните данни са guest:guest, без dev:dev, както написах в settings.py.

Къде ми е грешката? Благодаря


person nachopro    schedule 23.12.2016    source източник
comment
Използвате ли бекенд с резултати? Ако да, как е конфигуриран?   -  person Louis    schedule 28.12.2016
comment
Можем ли да видим вашата RabbitMQ конфигурация?   -  person Cloud Artisans    schedule 04.02.2017
comment
Аз също виждам това. Очевидно сте любопитни дали сте го решили?   -  person rh0dium    schedule 18.05.2017


Отговори (1)


Решението се състои в преименуване на celery.py на celery_app.py, за да се избегне автоматично импортиране.

След това трябва да изпълните celery по следния начин: celery --app=PACKAGE.celery_app:app worker

PACKAGE е модулът (папката), където поставяте celery_app.py

person nachopro    schedule 18.05.2017