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进行服务部署

posted @ 2020-06-16 23:02  X-Wolf  阅读(3260)  评论(2编辑  收藏  举报