前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式任务队列celery之五

分布式任务队列celery之五

作者头像
用户1278550
发布2018-08-09 14:03:46
9350
发布2018-08-09 14:03:46
举报
文章被收录于专栏:idbaidba

一 简介

前面一系列celery的文章算是从0到1将celery的架构,原理以及核心功能比较完整的呈现给大家,本文则基于运维的角度介绍如何在生产上运维celery。

本文算是介绍Celery系列基础知识的收尾,当然以后也可能会继续写相关实践的文章,我们目前的任务管理是基于Celery的二次开发,有赞DBA组的小伙伴王航威在杨建荣老师的自动化运维群分享过,后续会将文章发布到这里。

二 部署

我们自己研究学习celery的时候一般开启多个窗口来启动celery进程和观察日志,但是生产上则不能这样操作,太不专业了。我们需要将celery以守护进程或者daemonize模式运行,常见的方法是 使用nohup 命令,nohup不方便自动启停,我们可以通过前面介绍过supervisor来实现进程启停管理。参考zandb中的配置:

celery 进程的管理

flower 监控进程的管理

查看进程的状态

三 监控

Celery Flower是基于web的监控和管理Celery的工具。支持

用Celery事件实时监控
  1. 任务进程和历史
  2. 能够显示任务的详细信息(arguments, start time, runtime等)
  3. 图形化和统计
远程控制
  1. 查看worker状态和统计
  2. 关闭和重启worker实例
  3. 控制进程池大小,平滑配置(autoscale settings)
  4. 查看和修改一个worker实例消费的队列
  5. 查看当前正在运行的tasks
  6. 查看计划任务(ETA(估计到达的时间)/倒计时)
  7. 应用时间和速率限制
  8. 配置浏览器(Configuration viewer)
  9. 撤销或终止任务
Broker monitoring(中间人监控)
  1. 查看所有Celery 队列的统计
  2. 队列长度图

flower 安装:

$ pip install flower 或者 $ easy_install flower

flower 使用 首先启动通过命令行启动 flower 进程:

$ flower -A proj --port=5555

启动flower时需注意默认监控redis 0号数据库 ,如果celery配置的broker不是0,则需要在启动flower的时候指定,例如

flower --port=5555 --broker=redis://localhost:6379/3 --broker_api=redis://localhost:6379/3 然后打开浏览器 http://localhost:5555/

首页

worker 的状态

tasks 执行历史

监控显示任务的执行成功失败状态,和任务的执行时间,这里没有使用队列,如果启用了队列,则会显示队列的状态。 这个页面的监控是web 页面启动以来的,如果刷新页面之后 会重新监控,也就是说不会显示历史状态。

四 推荐阅读

分布式任务管理系统 Celery 之一

分布式任务管理系统 Celery 之二

分布式任务管理系统 Celery 之三

分布式任务队列系统 Celery 之四

supervisor 工具介绍

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 简介
  • 二 部署
  • 三 监控
    • 用Celery事件实时监控
      • 远程控制
        • Broker monitoring(中间人监控)
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档