At this point, I spent 3 days on this and it is driving me absolutely crazy.
I changed from Redis to RabbitMQ broker, and it broke everything. I am getting the following error regardless of which configuration I try.
app-worker-1 | [2024-03-25 07:26:55,878: ERROR/MainProcess] consumer: Cannot connect to amqp://user:**@rabbitmq:5672//: [Errno -2] Name or service not known.
app-worker-1 | Trying again in 2.00 seconds... (1/100)
app-worker-1 |
app-flower-1 | [E 240325 07:26:56 events:191] Failed to capture events: '[Errno 111] Connection refused', trying again in 2 seconds.
app-flower-1 | [E 240325 07:26:56 base_events:1771] Future exception was never retrieved
app-flower-1 | future: <Future finished exception=OperationalError('[Errno 111] Connection refused')>
app-flower-1 | Traceback (most recent call last):
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 472, in _reraise_as_library_errors
app-flower-1 | yield
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 459, in _ensure_connection
app-flower-1 | return retry_over_time(
app-flower-1 | ^^^^^^^^^^^^^^^^
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/kombu/utils/functional.py", line 318, in retry_over_time
app-flower-1 | return fun(*args, **kwargs)
app-flower-1 | ^^^^^^^^^^^^^^^^^^^^
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 941, in _connection_factory
app-flower-1 | self._connection = self._establish_connection()
app-flower-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/kombu/connection.py", line 867, in _establish_connection
app-flower-1 | conn = self.transport.establish_connection()
app-flower-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/kombu/transport/pyamqp.py", line 203, in establish_connection
app-flower-1 | conn.connect()
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/amqp/connection.py", line 323, in connect
app-flower-1 | self.transport.connect()
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/amqp/transport.py", line 129, in connect
app-flower-1 | self._connect(self.host, self.port, self.connect_timeout)
app-flower-1 | File "/usr/local/lib/python3.11/site-packages/amqp/transport.py", line 184, in _connect
app-flower-1 | self.sock.connect(sa)
app-flower-1 | ConnectionRefusedError: [Errno 111] Connection refused
I am running everything through docker:
version: "3.8"
services:
worker:
build:
context: .
dockerfile: Dockerfile
network_mode: host
environment:
- C_FORCE_ROOT="true"
ports:
- 8001:8000
volumes:
- ./:/app
command: ['celery', '-A', 'app.src.backend.worker', 'worker', '-l', 'info']
depends_on:
- rabbitmq
- redis
flower:
image: mher/flower:2.0
command: ['celery', '--broker=amqp://user:password@rabbitmq:5672/', 'flower']
environment:
- FLOWER_PORT=5555
- FLOWER_PERSISTENT=True
- FLOWER_STATE_SAVE_INTERVAL=10000
ports:
- 5555:5555
volumes:
- /usr/local/flower:/etc/flower
depends_on:
- rabbitmq
- redis
- worker
- app
app:
build:
context: .
dockerfile: Dockerfile
command: ['python', 'run.py']
volumes:
- ./:/app
depends_on:
- rabbitmq
- redis
rabbitmq:
image: rabbitmq:3-management
hostname: rabbitmq
ports:
- 5672:5672
- 15672:15672
environment:
- RABBITMQ_DEFAULT_USER=user
- RABBITMQ_DEFAULT_PASS=password
- RABBITMQ_DEFAULT_VHOST=/
- CELERY_BROKER_URL=amqp://user:password@rabbitmq:5672
depends_on:
- redis
redis:
image: redis:latest
hostname: redis
ports:
- 6379:6379
I tried different ports, different parameters, all the advices I found online... nothing changed in 3 days.
Versions:
kombu==5.1.0
celery==5.1.2
I can access RabbitMQ in browser.
Any help is extremely appreciated.