RabbitMQ / Celery с Django зависает при задержке / готовности / etc - Нет полезной информации о журнале
Вопрос
Итак, я просто настроил 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.
Я создал пользователя "сельдерей", потому что в этом случае я не чувствовал себя очень изобретательным.
Когда я пытаюсь выполнить один из простых примеров в документах celery:
>>> 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.
Заранее спасибо за любую помощь.
Решение
Я только что исправил действительно уродливую ошибку, которая появлялась бы только у новых пользователей, которые могли бы вызвать это.(http://github.com/ask/celery/commit/a9c1316b15055b67ee3c38d294461fa82ed6d2b5)
Пожалуйста, извлеките данные из главной ветки на github.Если это все еще не работает, вы
вероятно, придется остановить rabbitmq, удалить каталог базы данных rabbitmq (обычно /var/lib/rabbitmq
) и снова запустите rabbitmq)
Искренне сожалею о доставленных неудобствах.Ошибка произошла из-за того, что мы недавно изменили название параметра ключа маршрутизации потребителей на "ключ привязки", но библиотеки amqp по-прежнему используют routing_key
и мы забыли переписать параметр.
Другие советы
Для любого, кто наткнется на это:похоже, это действительно помогает удалить ваш / var / lib / rabbitmq, даже если проблема, похоже, исчезла с обновлением celery.Я видел много ненадежности и непредсказуемости, пока не сделал этого.