You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI集成Celery遇Redis域名解析错误及URL后缀疑问

问题解决:Redis域名解析失败与URL末尾/0的含义

一、Redis域名解析失败的原因及修复

你的docker-compose.yaml存在网络配置遗漏:redis、worker、dashboard服务未加入自定义的soar-network网络。Docker容器只有在同一网络内才能通过服务名(如redis)互相访问,跨网络容器无法解析对方服务名,这就是触发Temporary failure in name resolution错误的核心原因。

修复需给这三个服务添加网络配置:

  1. 补全redis服务的网络配置:
redis:
  image: redis:7.0.5
  networks:
    - soar-network
  1. 补全worker服务的网络配置:
worker:
  build: .
  command: pipenv run celery --app=soar_core.celery.app worker --loglevel=info
  volumes:
    - .:/soar_core
  environment:
    - CELERY_BROKER_URL=redis://redis:6379/0
    - CELERY_RESULT_BACKEND=redis://redis:6379/0
  depends_on:
    - soar-core
    - redis
  networks:
    - soar-network
  1. 补全dashboard服务的网络配置,同时修正command中的语法错误(移除多余的--):
dashboard:
  build: .
  command: pipenv run celery --app=soar_core.celery.app flower --port=5555 --broker=redis://redis:6379/0
  ports:
    - 5556:5555
  environment:
    - CELERY_BROKER_URL=redis://redis:6379/0
    - CELERY_RESULT_BACKEND=redis://redis:6379/0
  depends_on:
    - soar-core
    - redis
    - worker
  networks:
    - soar-network

二、Redis URL末尾/0的含义

Redis默认内置16个逻辑隔离的数据库,编号从0到15。URL末尾的/0表示使用编号为0的数据库:

  • 不同数据库的key互相独立,不会产生干扰,适合在同一Redis实例中隔离不同应用或模块的数据。
  • 如果不指定数据库编号,Redis默认使用第0号数据库。

内容的提问来源于stack exchange,提问作者Muzaffer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:55:25