Celery之监控与管理
Celery两种监控工具: 命令行实用工具和Web实时监控工具Flower
一。命令行工具
1)进入shell环境
celery -A myCeleryProj.app shell Python 3.7.1 (default, Jun 12 2020, 10:34:40) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) 进入含有Celery变量的python解释器环境,Celery变量有当前的celery,app,Task 》 locals().keys() dict_keys(['app', 'celery', 'Task', 'chord', 'group', 'chain', 'chunks', 'xmap', 'xstarmap', 'subtask', 'signature', 'low', 'add', 'fall', '__builtins__']) > app <Celery __main__ at 0x7fce228aac88> 还可以执行任务 add taskB.delay()
2)status 在集群中列出激活的节点
celery -A celery_task.celery status
celery@VM_0_6_centos: OK
celery@VM_0_6_centos: OK
3)result 列出任务的执行结果
celery -A celery_task.celery result -t tasks.taskA
4)purse 从所有配置的任务队列清除任务消息
celery -A celery_task.celery purge 指定清除的队列 celery -A celery_task.celery purge -Q default, tasks_A 或排除指定任务队列 celery -A celery_task.celery purge -X tasks_B 注意:此命令将从配置的任务队列中清除所有的信息。不可撤销,永久清除
5)inspect active 列出激活的任务
celery -A celery_task.celery inspect active
-> celery@VM_0_6_centos: OK
- empty -
-> celery@VM_0_6_centos: OK
- empty -
6)inspect scheduled 列出计划任务
celery -A celery_task.celery inspect scheduled
7)inspect registered 列出以注册的任务
celery -A celery_task.celery inspect registered -> celery@VM_0_6_centos: OK * celery_task.tasks.add * celery_task.tasks.fall * celery_task.tasks.low -> celery@VM_0_6_centos: OK * celery_task.tasks.add * celery_task.tasks.fall * celery_task.tasks.low
8)inspect stats 列出worker的统计信息
celery -A celery_task.celery inspect stats
9)inspect query_task 通过ID获取任务的信息
celery -A celery_task.celery inspect query_task
可以查询多个
celery -A celery_task.celery inspect query_task id1 id2 ...
10) control enable_events/disable_events. 启用/禁用事件
celery -A celery_task.celery control enable_events
celery -A celery_task.celery control disable_events
11)migrate 将任务有一个中间人转移到另一个中间人上,试验性命令,确保对数据进行备份
celery -A celery_task.celery migrate redis://localhost amqp://localhost
二。Web实时监控工具Flower
1)安装
pip install flower
2)启动
celery -A myCeleryProj.app flower 默认端口http://localhost:5555 也支持指定端口 celery -A myCeleryProj.app flower --port=5555 中间人URL指定 celery -A myCeleryProj.app flower --port=5555 --broker=redis://127.0.0.1:6379/0
指定地址
celery -A myCeleryProj.app flowere --address=0.0.0.0 --port=5555 --basic_auth=用户名1:密码1,用户名2:密码2
可结合supervisor进行服务部署