Sellerie: Fehler bei der Verbindung zu RabbitMQ-Server
Bin ich angefangen zu verwenden, Sellerie, indem Sie die folgenden dieses "Erste Schritte mit Sellerie".
Ich genau die tasks.py angegeben link an.
Jedoch, wenn lief ich die Aufgabe mit,
celery -A tasks worker --loglevel=info
Bin ich immer diese Fehlermeldung:
[2014-09-16 20:52:57,427: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: Socket closed. Trying again in 2.00 seconds...
Den rabbitmq-server ist für Sie sicher laufen und unten ist der Ausschnitt aus der log-in Bezug auf den Fehler:
=ERROR REPORT==== 16-Sep-2014::20:53:09 ===
exception on TCP connection <0.235.0> from 127.0.0.1:58162
{channel0_error,starting,
{amqp_error,access_refused,
"AMQPLAIN login refused: user 'guest' - invalid credentials",
'connection.start_ok'}}
=INFO REPORT==== 16-Sep-2014::20:53:09 ===
closing TCP connection <0.235.0> from 127.0.0.1:58162
=INFO REPORT==== 16-Sep-2014::20:53:15 ===
accepted TCP connection on [::]:5672 from 127.0.0.1:58163
=INFO REPORT==== 16-Sep-2014::20:53:15 ===
starting TCP connection <0.239.0> from 127.0.0.1:58163
=ERROR REPORT==== 16-Sep-2014::20:53:18 ===
exception on TCP connection <0.239.0> from 127.0.0.1:58163
{channel0_error,starting,
{amqp_error,access_refused,
"AMQPLAIN login refused: user 'guest' - invalid credentials",
'connection.start_ok'}}
=INFO REPORT==== 16-Sep-2014::20:53:18 ===
closing TCP connection <0.239.0> from 127.0.0.1:58163
Mit dabei, ich habe die folgenden, um sicherzustellen, dass die "Gast" - Benutzer hat die Berechtigungen zum /vhost:
sudo rabbitmqctl set_permissions -p / guest ".*" ".*" ".*"
Und dann habe ich neu geladen/neu gestartet rabbitmq service um sicherzustellen, dass die änderungen wirksam werden,
dann lief Sie den task erneut. Aber der Fehler ist immer noch der gleiche.
Ich habe sogar versucht die Schaffung einer anderen vhost (jm-vhost) und Benutzer (jm-user1) und legen Sie die Berechtigungen wieder auf " alle zulassen:
sudo rabbitmqctl add_vhost jm-vhost
sudo rabbitmqctl add_user jm-user1 "" --> "" to make it passwordless (is this correct?)
sudo rabbitmqctl set_permissions -p /jm-vhost jm-user1 ".*" ".*" ".*"
Und dann modifiziert tasks.py zu:
app = Celery('tasks', broker='amqp://jm-user1@localhost//jm-vhost')
Aber wenn ich die Aufgaben noch, ich bekomme den gleichen Fehler.
Wie soll ich dieses Problem lösen? Vielen Dank im Voraus!
InformationsquelleAutor jaysonpryde | 2014-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich in der Lage, diese zu lösen (für diejenigen, die haben und haben das gleiche Problem) folgt.
Ich neu erstellt die Benutzer, die ich erwähnt auf meine Frage, diesmal aber mit einem Passwort. Wie diese:
Dann setze ich die Berechtigungen wieder mit dabei:
Neu gestartet rabbitmq-server, um sicherzustellen, dass die änderungen wirksam werden und die vorgenommenen änderungen zu tasks.py:
Wenn ich lief,
es hat geklappt :).
Ich hoffe, dies wird eine Hilfe für andere.
Danke Jungs!
Eine andere Sache, die ich gefunden habe, ist, dass, wenn Sie wollen, dies programmatisch tun, verwenden Sie die folgende syntax, so wie dieser: Unterprozess.call(['rabbitmqctl', 'set_permissions', '-p', 'vhost_name', 'joe_user', '.*', '.*', '.*'])
Es hat mir definitiv dabei geholfen. Danke!
Mein problem war, dass mein Passwort hatte eine Klammer und ein dollar-Zeichen. Ich entfernte diese Zeichen und alles funktionierte.
InformationsquelleAutor
Den
broker_url
hat das format:InformationsquelleAutor