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

  • 相关阅读:
    在HTML中使用JavaScript
    网站发布流程
    React组件
    React渲染和事件处理
    Java IO(三)
    Java IO(二)
    Java IO(一)
    Java常用类库
    Java集合框架(四)
    Java集合框架(三)
  • 原文地址:https://www.cnblogs.com/xingxia/p/celery_monitor_flower.html
Copyright © 2020-2023  润新知