在这里我选择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进程的更多相关文章

  1. 【Python】supervisor安装和管理celery

    参考:http://blog.csdn.net/wawa8899/article/details/52743861 参考:http://www.cnblogs.com/mountaingeek/p/5 ...

  2. 使用Supervisor管理Celery进程。

    讲过一篇celery的,但是celery启动后并不是daemon的,在生产环境中这肯定是不可以的,那怎么办呢? 这就需要使用supervisor进行进程管理了,下面详细介绍. 一. superviso ...

  3. 使用 supervisor 管理 Celery 服务

    使用 supervisor 管理 Celery 服务 Celery 后台运行 如果我们想让celery worker运行在后台而不是终端上,在后台以守护进程的方式运行,我们可以使用supervisor ...

  4. supervisor 管理uwsgi 进程

    Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动 重启.它是通过fork/exec的方式把这些被管理的进 ...

  5. 使用Supervisor管理Linux进程

    使用Supervisor管理Linux进程 简介 Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理. 安装 sudo ...

  6. supervisor安装以及监控管理rabbitmq消费者进程

    简介:Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启. 1.安装 apt-get install ...

  7. Python中Celery 的基本用法以及Django 结合 Celery 的使用和实时监控进程

    celery是什么 1 celery是一个简单,灵活且可靠的,处理大量消息的分布式系统 2 专注于实时处理的异步任务队列 3 同时也支持任务调度 执行流程 Celery 基本使用 tasks.py i ...

  8. celery 基础教程(五):守护进程

    一 守护进程方式启动 https://blog.csdn.net/p571912102/article/details/82735052 文件目录如下 . ├── config.py ├── main ...

  9. 用Supervisord管理Python进程

    http://feilong.me/2011/03/monitor-processes-with-supervisord Supervisord是用Python实现的一款非常实用的进程管理工具,类似于 ...

随机推荐

  1. python 基础 7.0 import 导入

    一. python 常用内置模块的使用(datetime,logging,os,command)       在日常的开发工作中,我们要写很多的python 代码,如果都写在一个文件中,会导致代码特别 ...

  2. EasyNVR H5无插件摄像机直播解决方案前端解析之:videojs的使用

    video.js的基本使用方法 一.videojs的初始化加载 videojs初始化加载分为两中 1.标签式加载 在引入videojs加载文件的前提下,可以在video标签中添加属性值"da ...

  3. JAVA解析XML之DOM方式

    JAVA解析XML之DOM方式 准备工作 创建DocumentBuilderFactory对象;    创建DocumentBuilder对象; 通过DocumentBuilder对象的parse方法 ...

  4. HttpModule与HttpHandler详解(转)

    ASP.NET对请求处理的过程:当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,A ...

  5. Python爬虫-- BeautifulSoup库

    BeautifulSoup库 beautifulsoup就是一个非常强大的工具,爬虫利器.一个灵活又方便的网页解析库,处理高效,支持多种解析器.利用它就不用编写正则表达式也能方便的实现网页信息的抓取 ...

  6. DAICO模式到底是什么?

    自从V神提出DAICO以来,已经有项目围绕DAICO模式落地,但是DAICO到底是什么呢? 所谓DAIC0,其实就是DAO+IC0. DAO是DistributedAutonomous Organiz ...

  7. Pentaho BIServer Community Edtion 6.1 使用教程 第四篇 安装和使用Saiku 插件 进行 OLAP

    OLAP(On-Line Analytical Processing,联机分析处理)是一个使分析师.管理者和执行者从原始数据中用来快速.一致.交互访问的一种软件技术,从而真实的反映企业的数据情况.OL ...

  8. 【Windows】修改远程桌面端口号

    echo off echo 修改远程连接端口 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Se ...

  9. python3使用pdfminer3k解析pdf文件

    安装pdfminer模块 pip3 install pdfminer3k 代码如下 #!/usr/bin/env python # coding:utf8 # author:Z time:2018/7 ...

  10. css三角形实现的几种方法的区别

    演变: .triangle{ height: 30px; width: 30px; display: inline-block; border: 30px solid; border-color: # ...