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

Celery Flower Inspect方法调用失败,求docker-compose配置排查建议

问题描述

我将机器学习应用的Celery Flower&Worker、Fast API、Redis、RabbitMQ组件整合到docker-compose中,但celery_flower组件出现Inspect方法调用失败的错误,影响相关调用。无法分享ML和celery_flower的镜像,希望得到docker-compose文件的可能问题排查建议。

docker-compose配置

version: "3.9"

services:
  web:
    image: custom-image
    container_name: web_app
    ports:
      - 8080:8080
      - 14565:14565
    depends_on:
      - amqp
      - celery_worker
      - redis
  amqp:
    image: rabbitmq:3
    container_name: rabbit_mq_test
    ports:
      - 4369:4369
      - 5672:5672
      - 25672:25672
      - 15672:15672
  redis:
    image: redis
    container_name: redis_container
    ports:
      - 6379:6379
  celery_worker:
    image: custom-image
    working_dir: /webapp/endpoints/contents/
    container_name: celery_worker
    command: /opt/conda/envs/webapp/bin/celery -A router.celery_app worker --loglevel=info -P threads
    depends_on:
      - amqp
      - redis

  celery_flower:
    container_name: celery_flower
    working_dir: /webapp/endpoints/contents/
    image: mher/flower:latest
    command: celery --broker 'amqp://guest:guest@amqp:5672//' --result-backend 'rpc://' flower
    environment:
      - CELERY_BROKER_URL=amqp://guest:guest@amqp:5672//
      - FLOWER_PORT=5555
    ports:
      - 5555:5555
    depends_on:
      - amqp
      - redis

celery_flower错误日志

celery_flower | [I 221213 19:33:42 command:162] Visit me at http://localhost:5555
celery_flower | [I 221213 19:33:42 command:170] Broker: amqp://guest:**@amqp:5672//
celery_flower | [I 221213 19:33:42 command:171] Registered tasks: 
celery_flower |   ['celery.accumulate',
celery_flower |    'celery.backend_cleanup',
celery_flower |    'celery.chain',
celery_flower |    'celery.chord',
celery_flower |    'celery.chord_unlock',
celery_flower |    'celery.chunks',
celery_flower |    'celery.group',
celery_flower |    'celery.map',
celery_flower |    'celery.starmap']
celery_flower | [W 221213 19:33:42 command:177] Running without authentication
celery_flower | [I 221213 19:33:48 mixins:225] Connected to amqp://guest:**@amqp:5672//
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method active_queues failed
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method active failed
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method scheduled failed
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method reserved failed
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method registered failed
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method revoked failed
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method conf failed
celery_flower | [W 221213 19:33:49 inspector:42] Inspect method stats failed

注:Celery Flower仪表板外观无异常。

排查建议
  • 版本兼容性检查:mher/flower:latest可能和自定义镜像中的Celery版本不匹配,版本差异会导致Inspect方法调用失败。建议指定与Worker同版本的Flower镜像,或在Flower容器中安装一致版本的Celery。
  • Broker配置一致性验证:确认Worker的router.celery_app中Broker配置(虚拟主机、账号、密码、端口)与Flower的amqp://guest:guest@amqp:5672//完全一致。
  • Result Backend配置修复:当前Flower使用rpc://作为结果后端,但Worker配置的是Redis。需统一两者的结果后端,修改Flower的command为:celery --broker 'amqp://guest:guest@amqp:5672//' --result-backend 'redis://redis:6379/0' flower,同时添加环境变量CELERY_RESULT_BACKEND=redis://redis:6379/0。
  • Worker连接状态确认:查看celery_worker的日志,确认Worker已正常启动并成功连接到RabbitMQ,无连接或认证错误。Worker未连上Broker时,Flower无法通过Inspect获取数据。
  • 启动顺序优化:depends_on仅保证容器启动顺序,不保证服务就绪。可给Flower添加启动延迟,比如修改command为:sh -c "sleep 10 && celery --broker 'amqp://guest:guest@amqp:5672//' --result-backend 'redis://redis:6379/0' flower",或使用wait-for-it工具等待RabbitMQ和Worker就绪后再启动Flower。
  • 容器网络连通性测试:进入celery_flower容器,执行ping amqp和ping celery_worker确认网络连通;再手动执行celery inspect active -A router.celery_app --broker amqp://guest:guest@amqp:5672//测试Inspect命令是否能获取Worker数据。
  • RabbitMQ虚拟主机权限检查:默认虚拟主机为/,确保Worker和Flower均使用该虚拟主机,且RabbitMQ未修改默认虚拟主机的权限配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:20:59