RabbitMQ / Celery с Django зависает при задержке / готов / etc - нет полезной информации журнала - PullRequest
6 голосов
/ 26 января 2010

Итак, я просто установил celery и rabbitmq, создал моего пользователя, настроил vhost, сопоставил пользователя с vhost и успешно запустил демон celery (или, как я полагаю)

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

Celery has started.

Я создал пользователя «сельдерея», потому что в этом случае я не чувствовал себя очень изобретательным.

Когда я пытаюсь сделать один из простых примеров в документации по сельдерею:

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

Итак, я проверил FAQ, задаваясь вопросом, что еще может быть, и он сказал мне, что это распространенная ошибка из-за пользовательских разрешений, поэтому я трижды проверил их, ничего, сделал другого нового пользователя, все еще ничего. Если я импортирую DjangoBrokerConnection из carrot.connection и получаю информацию, она совпадает с тем, что есть в моих настройках сельдерея. Заявленный FAQ, чтобы проверить ваш файл журнала.

Мой rabbit.log файл не очень полезен в этой ситуации, просто показывает:

=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

И так далее. На данный момент, я в растерянности относительно того, что еще может быть моей проблемой. Я использую Ubuntu Jaunty и установил RabbitMQ из apt-get.

Заранее спасибо за любую помощь.

Ответы [ 2 ]

4 голосов
/ 27 января 2010

Я только что исправил очень уродливую ошибку, которая появлялась только у новых пользователей, которые вызвали бы это. (http://github.com/ask/celery/commit/a9c1316b15055b67ee3c38d294461fa82ed6d2b5)

Пожалуйста, извлеките ветку master на github. Если это все еще не работает у вас вероятно, придется остановить rabbitmq, удалить каталог базы данных rabbitmq (обычно /var/lib/rabbitmq) и снова запустить rabbitmq)

Очень жаль за доставленные неудобства. Ошибка произошла из-за того, что мы недавно изменили имя параметра ключа маршрутизации потребителей на «ключ привязки», но библиотеки amqp по-прежнему используют routing_key, и мы забыли переписать этот параметр.

2 голосов
/ 24 ноября 2010

Для любого, кто сталкивается с этим: кажется, что это действительно помогает удалить ваш / var / lib / rabbitmq, даже если проблема с обновлением сельдерея, похоже, исчезнет. Я видел много ненадежности и непредсказуемости, пока я не сделал это.

...