作为一种分布式任务队列,Celery广泛应用于异步任务的处理。为了让任务的管理和监控更加方便,Celery提供了一个Web界面工具——Flower。
一、Flower是什么?
Flower 是一个基于 web 的 Celery 任务管理工具。使用 Flower,可以轻松地监控 Celery 任务的进度和日志,并可以查看 Celery 集群的统计数据。它还支持任务队列的监控和调度,除了任务完成情况的提醒外,还支持 Redbeat 的计划任务管理等高级功能。
二、Flower的安装和使用
使用pip安装:
pip install flower
启动Flower:
flower -A proj --port=5555或
celery flower -A proj --address=0.0.0.0 --port=5555
其中`--port`是Flower监听的端口,`--address`是Flower监听的地址,`-A`参数指定Celery应用的名称
三、Flower的Web界面
Flower的web界面可以在浏览器中访问,如:http://localhost:5555
主要界面分为以下部分:
3.1、Dashboard
即概览页面,展示集群节点数量、Worker数量、任务执行情况等信息。此外,还可以手动添加新的Worker节点。同时,在每个Worker的名称后面,有一个 +/- 操作按钮,可以手动增加或移除Worker节点,完成节点调度。
3.2、Tasks
即任务页面,它是 Flower 的核心部分,用户可以通过此页面查看每个任务的状态、运行时间、入参、出参等详细信息。此外,为了方便用户查找和管理任务,该页面还提供了任务过滤和排序功能。
3.3、Workers
即Worker节点页面,它用来展示集群中运行的Worker节点,以及节点的状态、执行任务的能力等信息。此外,该页面还提供了 Worker 的监控和管理功能,例如杀掉 Worker 等。
3.4、Control
即控制面板页面,它用来操作 Celery Worker,比如可以通过这个页面手动杀死 Worker、查看 Worker 的状态和日志、设置日志级别等常用操作。此外,还可以通过控制面板来管理任务队列。
3.5、Broker
即消息队列页面,它可以展示系统中使用的全部消息队列,以及它们的状态和性能数据等信息。用户可以掌握系统的发布-订阅模型,确保消息队列顺畅运行。
四、Flower的高级用法
4.1、设置用户验证
当 Flower 监控访问权限比较开放时,不同用户都可以通过 Flower 的 URL 访问,此时可以通过设置用户名和密码来限制对 Flower 的访问权限。可以通过以下方式设置用户名和密码:
flower --basic_auth=user:password
其中 user 是用户名,password 是密码,两者之间用冒号 : 连接。
4.2、配置 TLS/SSL 安全连接
在安全环境下,通过 TLS/SSL 加密协议保证数据传输的安全。
首先需要生成私钥和证书,使用以下命令
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
key.pem 是生成的私钥,certificate.pem 是生成的证书。
接下来,使用以下命令启动 Flower:
flower --certfile=certificate.pem --keyfile=key.pem
4.3、使用 Redbeat 管理计划任务
Redbeat 是 Redislabs 提供的一个基于 Redis 存储后台的 Celery 定时任务插件。Flower 可以使用 Redbeat 管理计划任务。
需要在启动时指定 beart 参数,示例如下:
flower -A proj --port=5555 --beat
然后通过 Tasks 页面,可以添加、编辑和删除任务。
五、总结
本文主要讲解了Celery的监控和管理工具——Flower。介绍了Flower的安装和使用、Web界面的组成、以及高级用法。
通过本文的介绍,相信读者已经能够掌握 Flower 的基本用法和一些高级用法,更加方便地完成异步任务的监控和管理。