ped*_*dev 16 python celery flower
当我运行命令时
flower -A main --port=5555
Run Code Online (Sandbox Code Playgroud)
花不工作,错误是:
> ImportError: cannot import name 'Command' from 'celery.bin.base'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?Main 是一个 Django 项目
cam*_*ech 15
如果您希望避免降级 Celery worker,一种解决方法是运行与主 Celery 安装分开的先前版本的 Flower。例如,在一个容器或单独的 venv 中。Flower 仅监控您的经纪人,并且可以与您的 Celery 工作人员完全分开运行。
对于你的 Django/Celery 安装,正常运行 Celery (没有 Flower):
celery -A main worker
Run Code Online (Sandbox Code Playgroud)
对于 Flower,请使用 docker image mher/flower:0.9.5,它内部使用 Celery 4.4.6,并报告有效。
这是一个示例docker run命令:
docker run --name flower -p 5555:5555 mher/flower:0.9.5 flower --broker=redis://redis-address
Run Code Online (Sandbox Code Playgroud)
注意:您必须将代理地址更改为您的代理的 dns 可解析名称或 IP。对于rabbitmq,使用--broker=amqp://guest@rabbitmq-address:5672//. 有关高级选项,请参阅url 文档。
运行后,Flower 应该在 Docker 主机的 IP:5555 上可用
您也可以创建一个 docker-compose 文件来封装 run 命令中的所有参数,并使用docker-compose up -d.
如果愿意,您也可以在没有 Docker 的情况下完成所有这些,使用pip install flower redis celery==4.4.7,只要它与您的主要 Celery 安装分开,然后使用flower --broker=redis://redis-address. 一个单独的 venv 可能适用于此。
有关原始错误的未来更新,请参阅github 问题。
| 归档时间: |
|
| 查看次数: |
7800 次 |
| 最近记录: |