在这里我选择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. tp框架知识 之(链接数据库和操作数据内容)

    框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写con ...

  2. 【BZOJ2789】[Poi2012]Letters 树状数组

    [BZOJ2789][Poi2012]Letters Description 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符 ...

  3. wxPython的Refresh与事件双重响应

    #!/usr/bin/env python import wx class DoubleEventFrame(wx.Frame): def __init__(self, parent, id): wx ...

  4. php总结6——自定义函数、引用传值

    6.1 自定义函数 function 函数名称(参数[=默认值],参数[=默认值]...){ 函数体 [return val]; } 1) 无参数无返回 2) 有参数无返回 3) 有参数有返回 函数中 ...

  5. Java for LeetCode 101 Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  6. 剑指Offer:二叉搜索树的后序遍历序列【33】

    剑指Offer:二叉搜索树的后序遍历序列[33] 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. ...

  7. oops信息的分析【转】

    本文转载自:https://blog.csdn.net/zhangchiytu/article/details/8303172 oops是英语口语"糟糕"的意思,当LINUX 内核 ...

  8. c 获取 域名ip

    #include <stdio.h> #include <netdb.h> int main(int argc, char *argv[]) { ) { printf(]); ...

  9. 系统常用VC++运行时下载地址

    Microsoft Visual C++ 2005 Microsoft Visual C++ 2005 Redistributable Package (x86)  https://www.micro ...

  10. [原创]java开发实现word在线编辑及流转

    OA公文流转系统主要用于处理企业日常工作中内外部的各种公文,包括了公文的拟稿.审批.传阅.公告.归档,多层上级可以对下级撰写的公文进行逐级审批或修改,待最高级人员确认无误后即可进行核稿和发文等操作,最 ...