flower的使用介绍

celery作为一个分布式异步任务队列管理工具,我们需要通过界面化的方式来进行管控任务的执行状态和查看任务执行结果,这里介绍的是flower后端管理页面的内容。

flower的启动

首先flower作为web页面来管理celery后台任务,和任务队列是隔离的,也就是flower的运行与否并不会影响到任务队列的真正执行,但是flower中可以通过API接口来管理celery中的任务执行。

在django工程目录下面(和manage.py文件在一个层级),具体的执行命令:

python manage.py celery flower --basic_auth=floweradmin:12345 --port=8083

由于本人在django工程中已经设置了 BROKER_URL 所以在上述的flower启动命令中就没有再次指定队列url。

flower界面介绍

本片文章着重进行flower界面的介绍,主要是因为没有一个完整的文档来进行介绍,所以下面是详细介绍flower界面中各个页面展示的内容,并且各个字段的含义。

flower界面

Dashboard

Dashboard 页面是展示异步任务队列的主要情况,该页面包括如下几种状态的任务:

  • Active: 表示worker从队列中获取到任务,且正在执行的任务数
  • Processed: 表示worker从队列中获取到任务的总数据量
  • Failed: 表示worker从队列中获取到任务,且执行失败了的(异常退出)
  • Successed: 表示worker从队列中获取到任务,且执行成功了的
  • Retried: 表示worker从队列中获取到任务,因为一些其他原因重新执行的数量

所以,上述这些数量的关系如下:
Processed = Active + Received + Failed + Successed + Retried
其中 Received 表示该任务分配到了worker中,但是还没有被处理的任务数量

Dashboard页面

Worker Name 表示的是执行celery任务的worker名称;
Status 表示的是该worker的状态,包括 Online (在线) 、 Offline(离线),重启flower进程,即可将Offline状态的worker剔除掉;
Active / Processed / Failed / Successed / Retried 分别表示该worker正在执行的任务数、该worker处理的总任务数、处理失败的任务数、处理成功的任务数、重试的任务数;
Load Average 表示系统在 1min / 5min / 15min 内的CPU平均负载(百分比)

Tasks

Tasks 页面是展示所有worker接收到的任务的处理情况。下面对该表格中的做一些介绍

Tasks页面
  • Name: 表示该任务的名称,默认规则为该函数的路径规则,例如 {模块名}.{文件名}.{函数名}
  • UUID: 表示一个唯一字符串ID用于表示该任务
  • State: 表示该任务的状态,包括: SUCCESS / FAILURE / STARTED / RECEIVED
    • SUCCESS 表示该任务执行完毕且成功
    • FAILURE 表示该任务执行失败
    • STARTED 表示该任务正在执行
    • RECEIVED 表示该任务在worker中,只是被接收而已
  • args: 表示该任务的列表参数
  • kwargs: 表示该任务的字典参数
  • Result: 表示该任务函数的返回结果
  • Received: 表示该任务在worker接收到的时间
  • Started: 表示该任务在worker开始执行的时间
  • Runtime: 表示该任务在worker真正执行的耗时(单位:秒)
  • Worker: 表示该任务所在的worker名称

Broker

Broker 页面展示的是celery连接消息队列的信息,包括消息队列的访问URL,下面的截图展示的是链接的RabbitMQ,当然也可以链接Redis等。

Broker页面
  • Name: 表示队列的名称
  • Messages: 表示该队列的消息数量
  • Unacked: 表示该队列中还没收到ack确认的消息数量(该消息可能处于 RECEIVED 或是 STARTED
  • Ready: 表示该队列中还未分配到worker的消息数量
  • Consumers: 表示消费者数量(即worker数量)
  • Idle since: 表示该队列空闲的最初时间,否则为 N/A

Monitor

Monitor 页面展示的是celery后台任务的曲线展示状况。

Monitor页面

写在最后

上面介绍完了flower管理页面的使用,下面说一下,在实际使用过程中,由于队列阻塞,也就是消费者消费速率低于生产者的速率造成的情况,我们该如何处理。

这个时候我们为了快速解决这个问题,想先尽快清空队列该如何操作,重启worker是解决不了问题,并且worker重启之后,原先在worker中正在处理的任务,由于没有返回ack给到队列,这些任务将会重新放回队列中,那么重启worker之后,worker还是依然从队列中获取并重新执行。

像上述截图中,我们使用的是RabbitMQ作为消息队列,那么我们自然可以通过RabbitMQ的命令或者是RabbitMQ-management来操作,但是想像一下,这些后台都是放在平台上,我们无法直接访问操作,该如何去清理,这里提供一下本人通过pika来制作的一个清空队列的函数,并且可以作为HTTP请求来进行操作,可以设置最大清空队列中消息数量来进行处理,也可以全部清空。

具体的代码可以访问git代码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容