您的位置:首页 > 编程语言 > Python开发

基础入门_Python-模块和包.深入Celery之节点管理/任务调度/任务追踪?

2017-01-05 21:46 751 查看
任务管理:



说明: 如上为运行任务后的标准输出,transport为消息代理,concurrency为默认进程池进程数,当所有子进程处于忙碌状态时必须等待空闲子进程处理,如果是IO密集型可尝试使用Eventlet/Gevent协程,具体可参考http://docs.jinkan.org/docs/celery/userguide/concurrency/index.html#concurrency,result为结果存储,queue为所有的队列以及交换机信息列表
参数含义
%p节点全名,如foo@bar.example.com
%n只包含主机名,如foo
%h包含域名的主机名,如bar.example.com
%d只包含域名,如example.com
%iPrefork类型的进程索引,主进程为0,根据-n指定的名称生成对应的从1开始累加的名称,常用于用于为每个子进程创建唯一的日志文件
%IPrefork类型的进程索引,主进程空,根据-n指定的名称生成对应的从1开始累加的名称,常用于用于为每个子进程创建唯一的日志文件
# 启动节点
celery multi start notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
# 关闭节点
celery multi stop notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
celery multi stopwait notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
celery multi kill notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
# 重启节点
celery multi restart notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
# 查看节点
celery multi names notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
celery multi show notify -A work.app -c 4 -l info --pidfile=notify.pid --logfile=notify.log
说明: Celery提供了一个multi子名称,可以很方便的管理Celery应用的启动(notify表示应用的唯一标识,-A表示应用的入口文件,-c表示默认工作进程下将启动的子进程数,--pidfile表示进程文件,--logfile表示日志文件)/关闭(stop表示异步停止应用,stopwait表示同步等待停止应用,kill表示终止应用,但需要注意的是必须指定--pidfile和--logfile)/重启(restart表示重启应用,但需要注意的是默认multi并不记忆之前启动参数,所以需要和启动参数一样)
扩展: 如果想要跟踪不同子进程的日志可直接在--pidfile和--logfile中使用上面的格式化参数,如celery multi start notify -A work.app -c 4 -l info --pidfile=notify%I.pid --logfile=notify%I.log,则会在当前运行目录下生成不同进程的进程ID以及日志文件,但是当你关闭和重启的时候就不那么方便了~

任务调度:
celery beat --help

任务跟踪:
celery result --help
celery -A work.app inspect --help

在线控制:
celery amqp --help
celery -A work.app control --help

在线节点:
celery -A work.app status
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 基础入门
相关文章推荐