您的位置:

Celery Flower详解:监控和管理异步任务

作为一种分布式任务队列,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 的基本用法和一些高级用法,更加方便地完成异步任务的监控和管理。