2016-12-23 48 views
3

我使用Django 1.10和芹菜4的Django +芹菜4個設置錯誤

我發現泄漏芹菜中的文檔:(

工人配置做得很好,它運行正常(我可以看到工人的RabbitMQ webmin的連接),但我的任務無法連接到RabbitMQ的發佈自己的消息。

settings.py

CELERY_BROKER_URL = 'amqp://dev:[email protected]/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的日誌,我看到憑據來賓:來賓,沒有開發:開發就像我在settings.py寫道。

我的錯誤在哪裏?由於

+0

您使用的結果後端的celery_app.py celery --app=PACKAGE.celery_app:app worker

封裝模塊(文件夾):

然後,你必須用這種方式執行芹菜?如果是,它是如何配置的? – Louis

+0

我們可以看到你的RabbitMQ配置嗎? – gorus

+0

我也看到了這一點。顯然好奇,如果你解決了它? – rh0dium

回答

0

解決方案包括在重命名celery.pycelery_app.py,以避免自動導入。你把