Celery用户指引------监控与管理

介绍

有一些监控和查看celery集群的工具。

这篇文章会介绍其中的一些,另外还有一些关于监控的特性,如果事件和广播命令。


Workers

命令行管理工具

celery也可以用来检查和管理worker节点(和对tasks在一定程度上的管理)。

列出所有可用的命令:

$ celery help
或者获取指定命令的帮助:

$ celery <command> --help

命令

shell:进入一个python shell

本地环境将会包含celery变量,即为当前的app实例。所有已知的任务都会被自动添加到本地(除非设置了“--without-tasks ”标志。)

状态:列出集群中的所有节点

$ celery -A proj status
结果:显示一个任务的结果

$ celery -A proj result -t tasks.add 4e196aa4-0141-4601-8138-7aa33db0f577

注意你可以省略任务的名字只要任务不是使用的特定的结果后台。


清除:从所有配置的任务队列中清除信息。

这条命令将会删除CELERY_QUEUES配置中指定的队列中的所有消息。

警告:没有对应的undo命令,所有的消息都会被彻底清除。

$ celery -A proj purge

你也可以通过-Q选项来指定要清除的队列:

$ celery -A proj purge -Q celery,foo,bar
通过-X选项来排除被清除的队列:

$ celery -A proj purge -X celery
监控活动:列出活动的任务

$ celery -A proj inspect active
这会显示所有当前正在执行的任务。


监控调度:列出被调度的ETA任务。

$ celery -A proj inspect scheduled
这些是worker的保留任务,因为它们设置了eta或者countdown参数。


监控保留:列出所有保留任务。

$ celery -A proj inspect reserved
这会列出所有被worker预取的任务,还有当前正在等待执行的任务(不包含eta任务)。

监控撤销:列出任务撤销历史。

$ celery -A proj inspect revoked
监控注册:列出注册的任务

$ celery -A proj inspect registered
监控状态:显示worker统计数据

$ celery -A proj inspect stats
控制enable_events:使能Events

$ celery -A proj control enable_events
控制disable_events:禁用Events

$ celery -A proj control disable_events
迁移:将任务从一个broker迁移到另一个。

$ celery -A proj migrate redis://localhost amqp://localhost
这个命令将会把所有的任务从一个broker迁移到另一个。因为这是个新命令而且还在实验中,所以在执行这个命令之前你需要保证有一个备份。


注意:所有的inspect和control命令都支持timeout参数,这个是等待响应的超时时间。如果因为延时而没有收到响应。你需要增加这个时间。


指定目的节点

默认情况下,管理和控制命令在所有的worker上执行。你可以通过--destination参数指定单一的或者workers列表。

$ celery -A proj inspect -d w1,w2 reserved

$ celery -A proj control -d w1,w2 enable_events

Flower:Celery的实时web监控

Flower是一个Celery的基于web的实时监控和管理工具。它还在积极的开发之中,但是已经是一个很有效的工具了。它也是Celery建议使用的监控工具,废弃了Django-Admin,celerymon和基于ncurses的监控。


特性

通过使用Celery事件来实时监控

a.任务进度和历史

b.展示任务细节(参数,开始时间,运行时间和其它)

c.图表和数据


远程控制

a.查看worker状态和统计

b.关闭和重启worker实例

c.控制worker池大小的自动扩充设置

d.查看和修改一个worker消费的队列

e.查看当前运行的任务

f.查看被调度的任务(ETA/shutdown)

g.查看保留和撤销的任务

h.设置时间和频率限制

i.配置查看信息

j.撤销或者终止任务


HTTP API

a.列出workers

b.关闭一个worker

c.重启worker池

d.增大worker池

e.缩小worker池

f.自动控制worker池的规模

g.从一个队列开始消费

h.停止从一个队列消费

i.列出任务

j.列出任务类型

k.获取一个任务信息

l.执行一个任务

m.通过名字执行一个任务

n.获取任务结果

o.改变一个任务的软硬时间限制

p.改变一个任务的限制率


截图:







使用方法

使用pip进行安装

$ pip install flower
运行flower命令会启动一个可供你浏览的web服务器

$ celery -A proj flower
默认端口是5555,但是你可以通过--port参数来改变

$ celery -A proj flower --port=5555
broker URL也可以通过--broker参数来传递

$ celery flower --broker=amqp://guest:guest@localhost:5672//
or
$ celery flower --broker=redis://guest:guest@localhost:6379/0
然后你就可以通过浏览器进行浏览了:

$ open http://localhost:5555
Flower还有很多其它的特性,包括一些授权相关的选项。更多信息请参考官方文档:official documentation 


celery事件:Curses监控

2.0中的新特性

celery事件是一个简单的curses监控用来展示任务和worker的历史。你可以监控任务的结果和调用栈,它也支持一些管理命令如频率限制和关闭worker.这个工具的目的是做概念验证的,所以你最有可能还是希望使用Flower.


启动:

$ celery -A proj events
你会看到如下的界面:



celery事件也用来开启快照相机,查看快照说明:Snapshots

$ celery -A proj events --camera=<camera-class> --frequency=1.0
它有一个将事件dump到标准输出的工具:

$ celery -A proj events --dump
通过使用"--help"选项查看完整的选项列表:

$ celery events --help

展开阅读全文

没有更多推荐了,返回首页