celery和supervisor配合使用,实现supervisor管理celery进程
在这里我选择redis作为celery异步任务的中间人,系统选择CentOS6.5 64位。
redis、celery和supervisor的安装参见官方文档。
安装完毕后:
1, 创建celery的实例/home/user_00/learn/tasks.py文件
tasks.py:
# -*-coding:utf-8-*-
from celery import Celery, platforms
app = Celery('tasks', backend='redis://localhost:6379/1', broker='redis://localhost:6379/0')
# celery不能root用户启动解决(C_FORCE_ROOT environment),加上这一行即可
platforms.C_FORCE_ROOT = True
@app.task
def add(x, y):
return x + y
2, 启动redis服务和celery职程服务器,
redis-server
celery -A tasks worker --loglevel=info
在tasks.py文件同级目录下打开python shell:
In [1]: from tasks import add In [2]: add.delay(4, 6) Out[2]: <AsyncResult: 3e346dba-f8dc-4295-bc68-bba0bf9c1f94>
In [10]: result.get()
Out[10]: 10
同时可以看到celery服务的log输出:10, 这个时候关闭celery职程服务, 下一步将其加入到supervisor的进程管理器中
3, 安装好supoervisor之后, 生成supervisor配置文件
echo_supervisord_conf > /etc/supervisord.conf
用vim打开刚刚生成的配置文件supervisord.conf, 编辑最后两行改为:
[include] files = sv.ini
这时候创建/etc/sv.ini文件:
touch /etc/sv.ini
编辑sv.ini文件, 写入以下内容:
[program:celery] command=celery -A tasks worker --loglevel=info directory=/home/user_00/learn stdout_logfile=/home/user_00/learn/logs/celery.log autorestart=true redirect_stderr=true
同时创建/home/user_00/learn/logs/celery.log
这个时候名为celery的进程就配置好了
4.变更配置文件之后,要加载最新的配置文件:
supervisorctl update
启动supervisor服务:
supervisord
进入supervisor管理界面:
supervisorctl
启动celery进程:
start celery
5.这个时候测试一下
进入/home/user_00/learn/logs目录下,监控celery.log
tail -f *
在tasks.py文件同级目录下打开python shell:
In [1]: from tasks import add In [2]: add.delay(4, 6) Out[2]: <AsyncResult: 3e346dba-f8dc-4295-bc68-bba0bf9c1f94>
In [10]: result.get()
Out[10]: 10
可以在监控的log信息中看到输出结果:10
这个时候就完成了这个用supervisor管理celery进程的实例.
celery和supervisor配合使用,实现supervisor管理celery进程的更多相关文章
- 【Python】supervisor安装和管理celery
参考:http://blog.csdn.net/wawa8899/article/details/52743861 参考:http://www.cnblogs.com/mountaingeek/p/5 ...
- 使用Supervisor管理Celery进程。
讲过一篇celery的,但是celery启动后并不是daemon的,在生产环境中这肯定是不可以的,那怎么办呢? 这就需要使用supervisor进行进程管理了,下面详细介绍. 一. superviso ...
- 使用 supervisor 管理 Celery 服务
使用 supervisor 管理 Celery 服务 Celery 后台运行 如果我们想让celery worker运行在后台而不是终端上,在后台以守护进程的方式运行,我们可以使用supervisor ...
- supervisor 管理uwsgi 进程
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动 重启.它是通过fork/exec的方式把这些被管理的进 ...
- 使用Supervisor管理Linux进程
使用Supervisor管理Linux进程 简介 Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理. 安装 sudo ...
- supervisor安装以及监控管理rabbitmq消费者进程
简介:Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启. 1.安装 apt-get install ...
- Python中Celery 的基本用法以及Django 结合 Celery 的使用和实时监控进程
celery是什么 1 celery是一个简单,灵活且可靠的,处理大量消息的分布式系统 2 专注于实时处理的异步任务队列 3 同时也支持任务调度 执行流程 Celery 基本使用 tasks.py i ...
- celery 基础教程(五):守护进程
一 守护进程方式启动 https://blog.csdn.net/p571912102/article/details/82735052 文件目录如下 . ├── config.py ├── main ...
- 用Supervisord管理Python进程
http://feilong.me/2011/03/monitor-processes-with-supervisord Supervisord是用Python实现的一款非常实用的进程管理工具,类似于 ...
随机推荐
- mvc 各种返回值
一个例子胜过千言万语,直接上代码 SpringMVC的Controller控制器返回值详解 SpringMVC Controller 返回值几种类型 Spring MVC 更灵活的控制 json 返回 ...
- EasyNVR H5无插件摄像机直播解决方案前端解析之:监控实时直播的四分屏的前端展示
完成运行效果图: 一.四分屏展示样式布局 1.通过html.css等来进行样式排版 根据需求的四分屏的样式:来合理的划分出四个大块,分别用于放置四个播放器: 以四等分结构为例进行前端的排版: html ...
- BZOJ1217: [HNOI2003]消防局的设立
BZOJ1217: [HNOI2003]消防局的设立 Description 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地. 起初为了节约材料,人类只修建了n-1条道路来连接这些基地 ...
- 我的Android进阶之旅------>Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法
开发中常常需要自己定义Listview,去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点. 如果你的自定义Li ...
- springcloud 研发规范
1) 程序结构规范 1: Facade-Stub:包含所有对外提供服务的借口定义,并对外提供 2: Façade:实现Façade-Stub里面定义的全部借口,可以调用Service模块和Commo ...
- interceptors
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean ...
- python之tkinter_2
关于tkinter的组件介绍,这篇博客很详细: https://www.cnblogs.com/aland-1415/p/6849193.html tkinter is to make interfa ...
- 分享知识-快乐自己:SpringMvc中的单多文件上传及文件下载
摘要:SpringMvc中的单多文件上传及文件下载:(以下是核心代码(拿过去直接能用)不谢) <!--设置文件上传需要的jar--> <dependency> <grou ...
- MySQL性能优化/调优:默认配置的修改
在这里罗列一下这些配置, 每次新装MySQL的时候, 最好根据实际需要调整一下这些配置: max_connections 最大并发连接数.当MySQL的并发连接达到这个设定值时,新的连接将会被拒绝.当 ...
- zjoi2015d1题解
闲来无事做了丽洁姐姐的题 t1给一棵树 每个点有点权 每次修改点权 修改后询问每个点到树的带权重心的带权距离是多少 每个点度数不超过20 很显然的一个点分树... 我们记一下 每个点的子树中的所有点到 ...