Sellerie hat nicht gut funktionieren, weil der Fehlercode 104
Ich habe ein problem mit der Ausführung Sellerie auf rabbitmq-server. Ich suchte und fand ein link, aber es hilft mir nicht.
Mein env ist ubuntu 14.04, python 2.7.6, Sellerie 3.1.15, Django 1.7.
Referenzierung ein link, die ich installiert rabbitmq-server lokal. Ich fügte hinzu, Benutzer, vhost im rabbitmq-server und setzen Sie die Berechtigungen.
$ sudo rabbitmqctl add_user tonyg password
$ sudo rabbitmqctl add_vhost vir_host
$ sudo rabbitmqctl set_permissions -p vir_host tonyg ".*" ".*" ".*"
Mein Sellerie in django folgt.
BROKER_URL = 'amqp://tonyg:password@localhost:5672//vir_host'
CELERY_RESULT_BACKEND = 'amqp://tonyg:password@localhost:5672//vir_host'
CELERY_ACCEPT_CONTENT = [u'application/x-python-serialize', u'image/jpeg', u'image/bmp', u'image/png', u'image/tiff']
CELERY_TIMEZONE = 'Asia/Tokyo'
CELERY_ENABLE_UTC = True
CELERY_IGNORE_RESULT = False
Ich weiß nichts über rabbitmq-server als default-configs.
Ich ausgeführt Sellerie wie diese.
$ celery -A MyProj worker -l info
-------------- celery@ip-172-31-3-10 v3.1.15 (Cipater)
---- **** -----
--- * *** * -- Linux-3.13.0-36-generic-x86_64-with-Ubuntu-14.04-trusty
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: MyProj:0x7f7453328b10
- ** ---------- .> transport: amqp://tonyg:**@localhost:5672//vir_host
- ** ---------- .> results: amqp://tonyg:password@localhost:5672//vir_host
- *** --- * --- .> concurrency: 1 (prefork)
-- ******* ----
--- ***** ----- [queues]
-------------- .> celery exchange=celery(direct) key=celery
[tasks]
. MyProj.tasks. ......
. MyProj.tasks. ......
[2014-10-29 15:07:50,241: ERROR/MainProcess] consumer: Cannot connect to amqp://tonyg:**@127.0.0.1:5672//vir_host: [Errno 104] Connection reset by peer.
Trying again in 2.00 seconds...
[2014-10-29 15:07:55,251: ERROR/MainProcess] consumer: Cannot connect to amqp://tonyg:**@127.0.0.1:5672//vir_host: [Errno 104] Connection reset by peer.
Trying again in 4.00 seconds...
Wenn ich Sellerie mit Standard-Gast-identifier,
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'amqp://guest:guest@localhost:5672//'
tut es gut funktionieren. Ich weiß nicht, warum. Könnte mir jemand helfen? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laufen
rabbitmqctl list_vhosts
. Der Ausgang wird sein:Also die URL muss:
amqp://tonyg:**@localhost:5672/vir_host
gut funktioniert, weil es eine gültige URL für den vhost die Sie geschaffen haben. Die man mit zwei Schrägstrichen ist nicht eine gültige, es sei denn, vhost aufgerufen wird/vir_host
was nicht der Fall ist./vir_host
aber nichtvir_host
sudo apt-get purge rabbitmq-server
- und dann neu installiert.Dank @Krzysztof Szularz Antwort. Stellt sich heraus, deine url ist falsch. Es werden
Nun die Verbindung über localhost und es funktioniert gut. Wenn Sie möchten, eine Remote-Verbindung, es wird nicht funktionieren. Ihr Konto ist nur ein Gast Konto und es hat keine Administratorrechte. So dass Benutzer eine Verbindung über localhost NUR. Wenn Sie möchten, dass Benutzer Zugriff aus ein virtueller host ist, müssen Sie ihm Privilegien zu tun.
Führen Sie diesen Befehl geben Sie den Benutzer admin-Rechte.
Lesen Sie mehr dazu hier.