Ich fange an, Sellerie zu verwenden, indem ich dieser "First Steps with Celery" folge. Ich habe genau die auf diesem Link angegebene tasks.py verwendet. Allerdings, wenn ich die Aufgabe, lief mit,Sellerie: Fehler beim Verbinden mit RabbitMQ Server
celery -A tasks worker --loglevel=info
Ich erhalte 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...
Der rabbitmq Server sicher läuft und unten ist der Ausschnitt aus dem Protokoll über 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
damit habe ich folgendes zu gewährleisten, dass die ‚Gast‘ Benutzerberechtigungen/vhost haben:
sudo rabbitmqctl set_permissions -p/guest ".*" ".*" ".*"
Und dann habe ich rabbitmq service neu geladen/neu gestartet, um sicherzustellen, dass die Änderungen wirksam werden, dann lief die Aufgabe erneut. Der Fehler ist jedoch immer noch derselbe.
Ich habe sogar versucht, eine andere vhost (jm-vhost) und Benutzer erstellen (jm-user1) und stellen Sie die Erlaubnis wieder alle zu ermöglichen:
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 geändert tasks.py dazu:
app = Celery('tasks', broker='amqp://[email protected]//jm-vhost')
Aber als ich die Aufgaben gestartet habe, bekomme ich immer noch den gleichen Fehler. Wie soll ich das beheben? Danke im Voraus!
Dank Knospe, dass der Trick auch für mich getan hat! – maz
Eine andere Sache, die ich gefunden habe ist, dass, wenn Sie dies programmgesteuert tun möchten, verwenden Sie diese Syntax, genau so: subprocess.call (['rabbitmqctl', 'set_permissions', '-p', 'vhost_name', 'joe_user' , '. *', '. *', '. *']) – maz
Es hat mir definitiv geholfen. Vielen Dank! –