celeryd与RabbitMQ的挂在“乐居:搜索邻居”,但普通芹菜作品(celeryd with

2019-10-21 06:51发布

我敲我的头与celeryd和RabbitMQ的墙上。

从教程这个例子是工作得很好:

from celery import Celery

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

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

我运行:

celery -A tasks worker --loglevel=info

而我得到的输出:

[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.

我可以从蟒蛇REPL现在运行任务,并得到一个结果。

但是,当我安装celeryd,过程的交融步挂断了电话:

[2014-11-18 20:18:33,893: INFO/MainProcess] mingle: searching for neighbors

出现在这之后没有输出。

我的/ etc /默认/ celeryd看起来是这样的:

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芹菜3.1.16(Cipater)celeryd 3.1.6-1ubuntu1的RabbitMQ服务器3.2.4-1的Python 2.7.6

因此,没有daemonizing,芹菜可以初始化本身,而是与守护进程(celeryd)挂在交融步明显。

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

Answer 1:

如果你使用的数据库后端,把下面的选项,芹菜应该解决的问题:

    --without-mingle


Answer 2:

我得到了这个消息的预感:

[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包。 我删除它:

sudo apt-get remove librabbitmq1

而蟒蛇芹菜/ RabbitMQ的库做了某种回退的其他一些(也许普通的Python?)实现它的作品!



Answer 3:

检查您的可用磁盘空间。 RabbitMQ的需要的自由空间1GB默认。



文章来源: celeryd with RabbitMQ hangs on “mingle: searching for neighbors”, but plain celery works