首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >celeryd和RabbitMQ挂在“混合:搜索邻居”上,但普通芹菜可以工作。

celeryd和RabbitMQ挂在“混合:搜索邻居”上,但普通芹菜可以工作。
EN

Stack Overflow用户
提问于 2014-11-19 04:32:45
回答 3查看 1.6K关注 0票数 1

我正用celeryd和RabbitMQ把我的头撞到墙上。

教程中的这个示例运行得很好:

代码语言:javascript
复制
from celery import Celery

app = Celery('tasks', backend='amqp', broker='amqp://')

@app.task
def add(x, y):
return x + y

我运行:

代码语言:javascript
复制
celery -A tasks worker --loglevel=info

然后我得到了输出:

代码语言:javascript
复制
[2014-11-18 19:47:58,874: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2014-11-18 19:47:58,881: INFO/MainProcess] mingle: searching for neighbors
[2014-11-18 19:47:59,889: INFO/MainProcess] mingle: all alone
[2014-11-18 19:47:59,896: WARNING/MainProcess] celery@vagrant-ubuntu-trusty-64 ready.

我现在可以从python repl运行任务并得到结果。

但是当我安装celeryd时,进程在混合步骤中挂起:

代码语言:javascript
复制
[2014-11-18 20:18:33,893: INFO/MainProcess] mingle: searching for neighbors

在此之后没有输出。

我的/etc/default/celeryd如下所示:

代码语言:javascript
复制
ENABLED="true"
CELERYD_NODES="w1"
CELERYD_CHDIR="/home/myusername/src/celery-test"
CELERYD_OPTS="--time-limit=300 --concurrency=8"
CELERY_CONFIG_MODULE="celeryconfig"
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_USER="celery"
CELERYD_GROUP="celery"

我使用以下版本:

Ubuntu 14.04 celery 3.1.16 (Cipater) celeryd 3.1.6-1ubuntu1 rabbitmq-server 3.2.4-1 Python 2.7.6

因此,没有守护进程,芹菜可以初始化自己,但使用守护进程(celeryd)显然会挂起。

一些论坛认为这是RabbitMQ达到磁盘空间限制的问题。我有足够的磁盘,RabbitMQ自己的日志没有显示任何问题。

EN

回答 3

Stack Overflow用户

发布于 2016-04-25 13:52:07

如果您使用的是Database后台,添加以下选项到celery应该可以解决这个问题:

代码语言:javascript
复制
    --without-mingle
票数 2
EN

Stack Overflow用户

发布于 2014-11-19 15:25:48

我从这条消息中得到了一个预感:

代码语言:javascript
复制
[2014-11-18 16:20:17,216: WARNING/MainProcess] /usr/local/lib/python2.7/dist-packages/kombu/transport/librabbitmq.py:163: UserWarning:
    librabbitmq version too old to detect RabbitMQ version information
    so make sure you are using librabbitmq 1.5 when using rabbitmq > 3.3

  warnings.warn(UserWarning(W_VERSION))

因此,出于某种原因,我使用了librabbitmq1 apt包,但它太旧了。

结果发现问题出在librabbitmq1包上。我用以下命令删除了它:

代码语言:javascript
复制
sudo apt-get remove librabbitmq1

而python Celery/RabbitMQ库在某种程度上退回到了其他库(也许是普通的python?)有效的实现!

票数 1
EN

Stack Overflow用户

发布于 2016-05-24 15:21:42

检查您的可用磁盘空间。默认情况下,RabbitMQ需要1 1Gb的可用空间。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27003492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档