У меня есть приложение python, которое содержит экземпляр Celery:
tasks.py:
from celery import Celery
from APIGateway.urls import REACTION_URL
BACKEND = BROKER = 'redis://172.18.0.7:6379'
celery = Celery(__name__, backend=BACKEND, broker=BROKER)
@celery.task
def my_task(*params):
...
Я создаю задачу следующим образом:
params = ...
task = my_task.delay(params)
result = task.get()
Предыдущий экземпляр сельдерея хочет связаться с брокером / бэкендом redis, который размещен в отдельном контейнере docker.
docker -compose.yaml:
version: '2'
services:
gateway:
image: dicetellers/apigateway
ports:
- "5000:5000"
networks:
dice_network:
ipv4_address: 172.18.0.2
redis-gateway:
image: redis
ports:
- "6379:6379"
networks:
dice_network:
ipv4_address: 172.18.0.7
networks:
dice_network:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
Я также попытался изменить стандартную конфигурацию redis, обновив файл redis.conf
, но это не сработало. Кто-то знает, если я делаю что-то не так?