2010-01-26 6 views
5

Quindi ho appena impostato sedery e rabbitmq, creato il mio utente, configurato il vhost, mappato l'utente al vhost ed eseguito con successo il demone di sedery (o almeno così presumo)RabbitMQ/Celery con Django si blocca su delay/ready/etc - Nessuna informazione di log utile

(queuetest)[email protected]:~/projects/queuetest$ ./manage.py celeryd 
[email protected] v0.9.5 is starting. 
Configuration -> 
. broker -> amqp://[email protected]:5672/ 
. queues -> 
. celery -> exchange:celery (direct) binding:celery 
. concurrency -> 2 
. loader -> celery.loaders.djangoapp 
. logfile -> [stderr]@WARNING 
. events -> OFF 
. beat -> OFF 

Celery has started. 

ho creato un utente di "sedano", perché non mi sentivo molto inventiva in questo caso.

Quando provo a fare uno degli esempi semplici all'interno dei documenti di sedano:

>>> from tasks import add 
>>> r = add.delay(2, 2) 
>>> r 
<AsyncResult: 16235ea3-c7d6-4cce-9387-5c6285312c7c> 
>>> r.ready() 
(hangs for eternity.) 

Così ho controllato le FAQ chiedendo cosa altro potrebbe essere fino e mi ha detto che questo è un bug comune a causa autorizzazioni utente , quindi ho triplicato quelli, niente, fatto un altro nuovo utente, ancora niente. Se importare DjangoBrokerConnection da carrot.connection e ottenere le informazioni, corrisponde a ciò che è nelle mie impostazioni di sedano. Le FAQ hanno dichiarato di controllare il tuo file di registro.

Il mio file rabbit.log non è molto utile in questa situazione, semplicemente mostrando:

=INFO REPORT==== 26-Jan-2010::11:58:22 === 
accepted TCP connection on 0.0.0.0:5672 from 127.0.0.1:60572 

=INFO REPORT==== 26-Jan-2010::11:58:22 === 
starting TCP connection <0.1120.0> from 127.0.0.1:60572 

e così via. A questo punto, sono in perdita su quale altro potrebbe essere il mio problema. Sto usando Ubuntu Jaunty e installato RabbitMQ da apt-get.

Grazie in anticipo per qualsiasi aiuto.

+0

Prova a eseguire celeryd con --loglevel = INFO, in modo che tu possa vedere se l'attività è stata ricevuta ed elaborata o meno. Inoltre, quale risultato backend stai usando? – asksol

risposta

4

Ho appena corretto un bug davvero brutto che si sarebbe presentato solo per i nuovi utenti che avrebbero causato questo. (http://github.com/ask/celery/commit/a9c1316b15055b67ee3c38d294461fa82ed6d2b5)

Si prega di estrarre dal ramo master su github. Se continua a non funzionare, probabilmente devi smettere di usare rabbitmq, rimuovere la directory del database rabbitmq (di solito /var/lib/rabbitmq) e ricominciare con rabbitmq)

Davvero dispiaciuto per l'inconveniente. L'errore si è verificato perché recentemente abbiamo cambiato il nome dell'opzione chiave di routing dei consumatori in "chiave di associazione", ma le librerie amqp utilizzano ancora routing_key e ci siamo dimenticati di riscrivere l'opzione.

+0

Grazie .. scusa per la risposta tardiva, wow sono stato impegnato! Ma questo ha funzionato. Inoltre, grats sulla versione 1.0 :) – Bartek

+0

Mi ha fatto anche questo:> – fest

2

Per chi si imbatte in questo: sembra davvero che aiuti a rimuovere il tuo/var/lib/rabbitmq, anche se il problema sembra andare via con l'aggiornamento del sedano. Stavo vedendo un sacco di inaffidabilità e imprevedibilità fino a quando non l'ho fatto.