Bar*_*tek 6 python django rabbitmq celery
所以我只是设置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.
Run Code Online (Sandbox Code Playgroud)
我创造了一个"芹菜"的用户,因为在这种情况下我并没有感觉很有创造力.
当我尝试在芹菜文档中做一个简单的例子时:
>>> from tasks import add
>>> r = add.delay(2, 2)
>>> r
<AsyncResult: 16235ea3-c7d6-4cce-9387-5c6285312c7c>
>>> r.ready()
(hangs for eternity.)
Run Code Online (Sandbox Code Playgroud)
所以我检查了常见问题解答,想知道还有什么可能会起来,它告诉我这是一个由于用户权限而导致的常见错误,所以我三重检查那些,没有,做了另一个新用户,仍然没有.如果我DjangoBrokerConnection从中导入carrot.connection并获取信息,它会与我的芹菜设置中的内容相匹配.常见问题解答说明了检查您的日志文件.
我的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
Run Code Online (Sandbox Code Playgroud)
等等.在这一点上,我不知道我的问题可能是什么.我正在运行Ubuntu Jaunty并从apt-get安装了RabbitMQ.
在此先感谢您的帮助.
我刚刚修复了一个非常丑陋的错误,该错误只会出现在导致此问题的新用户中。(http://github.com/ask/celery/commit/a9c1316b15055b67ee3c38d294461fa82ed6d2b5)
请从 github 的 master 分支拉取。如果它仍然不起作用,您可能必须停止rabbitmq,删除rabbitmq数据库目录(通常/var/lib/rabbitmq)并再次启动rabbitmq)
对于给您带来的不便,我们深表歉意。发生该错误是因为我们最近将消费者路由键选项的名称更改为“绑定键”,但 amqp 库仍在使用routing_key,而我们忘记重写该选项。