1
我正在尝试关注本教程How to build docker cluster with celery and RabbitMQ in 10 minutes。Docker上的芹菜+ rabbitmq
按照教程,虽然我改变了以下文件。 我docker-compose.yml
文件看起来如下:
version: '2'
services:
rabbit:
hostname: rabbit
image: rabbitmq
environment:
- RABBITMQ_DEFAULT_USER=user
- RABBITMQ_DEFAULT_PASS=pass
- HOSTNAME=rabbitmq
- RABBITMQ_NODENAME=rabbitmq
ports:
- "5672:5672" # we forward this port because it's useful for debugging
- "15672:15672" # here, we can access rabbitmq management plugin
worker:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
links:
- rabbit
depends_on:
- rabbit
test_celery/celery.py
:
from __future__ import absolute_import, unicode_literals
from celery import Celery
app = Celery('test_celery',broker='amqp://user:[email protected]:5672//',backend='rpc://', include=['test_celery.tasks'])
和Dockerfile
:
FROM python:3.6
ADD requirements.txt /app/requirements.txt
ADD ./test_celery /app/
WORKDIR /app/
RUN pip install -r requirements.txt
ENTRYPOINT celery -A test_celery worker --loglevel=info
我运行代码使用下面的命令(我的操作系统是Ubuntu的16.04):
sudo docker-compose build
sudo docker-compose scale worker=5
sudo docker-compose up
在屏幕上输出看起来是这样的:
rabbit_1 | closing AMQP connection <0.501.0> (172.19.0.6:60470 -> 172.19.0.7:5672, vhost: '/', user: 'admin'):
rabbit_1 | client unexpectedly closed TCP connection
rabbit_1 |
rabbit_1 | =WARNING REPORT==== 8-Jun-2017::03:34:15 ===
rabbit_1 | closing AMQP connection <0.479.0> (172.19.0.6:60468 -> 172.19.0.7:5672, vhost: '/', user: 'admin'):
rabbit_1 | client unexpectedly closed TCP connection
rabbit_1 |
rabbit_1 | =WARNING REPORT==== 8-Jun-2017::03:34:15 ===
rabbit_1 | closing AMQP connection <0.366.0> (172.19.0.4:44754 -> 172.19.0.7:5672, vhost: '/', user: 'admin'):
rabbit_1 | client unexpectedly closed TCP connection
rabbit_1 |
rabbit_1 | =WARNING REPORT==== 8-Jun-2017::03:34:15 ===
rabbit_1 | closing AMQP connection <0.359.0> (172.19.0.4:44752 -> 172.19.0.7:5672, vhost: '/', user: 'admin'):
rabbit_1 | client unexpectedly closed TCP connection
worker_1 | [2017-06-08 03:34:19,138: INFO/MainProcess] missed heartbeat from [email protected]
worker_1 | [2017-06-08 03:34:24,140: INFO/MainProcess] missed
heartbeat from [email protected]
worker_1 | [2017-06-08 03:34:24,141: INFO/MainProcess] missed heartbeat from [email protected]
然后在同一目录下我跑
python -m test_celery.run_tasks
,并从该输出给了我:
一个kombu.exceptions.OperationalError: timed out
错误,我我不确定如何修复并获得与本教程中相同的输出。
状态显示为'上一分钟',日志显示了一系列消息:= INFO REPORT ==== 8-Jun-2017 :: 04:00:21 === 接受AMQP连接<0.398.0>(172.19.0.3:33112 - > 172.19.0.2:5672) =信息报告==== 8-Jun-2017 :: 04:00:21 === 连接<0.398.0>(172.19.0.3: 33112 - > 172.19.0.2:5672):用户'管理员'认证并授权访问虚拟主机'/' – jorge
我不知道它是否有用,但是在执行'docker-compose down'并重建后,我得到:错误:for dockerclusterwithceleryandrabbitmq_worker_4 Can not启动服务工作者:网络dockerclusterwithceleryandrabbitmq_default未找到 错误:对于dockerclusterwithceleryandrabbitmq_worker_5无法启动服务器ice worker:network dockerclusterwithceleryandrabbitmq_default not found 错误:对于dockerclusterwithceleryandrabbitmq_worker_1无法启动服务工作者:网络dockerclusterwithceleryandrabbitmq_default未找到 ... – jorge
将celery.py中的“rabbit”更改为localhost的ip。 https://github.com/plantpark/docker-cluster-with-celery-and-rabbitmq。这里的代码适用于我。 –