poorX

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  117 随笔 :: 0 文章 :: 11 评论 :: 16万 阅读

参考:http://blog.csdn.net/wawa8899/article/details/52743861

参考:http://www.cnblogs.com/mountaingeek/p/5911291.html

参考:http://www.linuxyw.com/718.html

参考:http://www.iitshare.com/supervisord-manage-process.html

参考:http://stackoverflow.com/questions/20346851/running-celery-as-root

运行生成配置文件:

[root@host /]# echo_supervisord_conf > /etc/supervisord.conf
...
pkg_resources.DistributionNotFound: meld3>=0.6.5
找到supervisor-3.3.1-py2.7.egg-info/requires.txt,把文件里面meld3 >= 0.6.5注释掉,然后再执行

 

配置

复制代码
[program:dopcelerybeat]
command=python manage.py celery beat
numprocs=1
directory=/path/
autostart=true
startsecs=10
startretries=3
stopwaitsecs=600
killasgroup=true
user=root
redirect_stderr=true
stdout_logfile=/path/logs/supervisord-celery-beat.log
stderr_logfile=/path/logs/supervisord-celery-beat-error.log

[program:dopceleryworker]
command=python manage.py celery worker -l info
numprocs=1
directory=/path/
autostart=true
startsecs=10
startretries=3
stopwaitsecs=600
killasgroup=true
user=root
redirect_stderr=true
stdout_logfile=/path/logs/supervisord-celery-worker.log
stderr_logfile=/path/logs/supervisord-celery-worker-error.log

[group:dopcelery]
programs=dopcelerybeat,dopceleryworker
; priority=999                  ; the relative start priority (default 999)
复制代码

 

运行celery时报错的解决方法:

复制代码
1st solution - Manually type command at terminal
$ export C_FORCE_ROOT='true'

2nd solution - Edit shell configuration
$ vi ~/.bashrc

    # add following line
    export C_FORCE_ROOT='true'

$ source ~/.bashrc

3rd solution - Edit manage.py of Django
import os 

if __name__ == '__main__':
    os.environ.setdefault('C_FORCE_ROOT', 'true')
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{PATH TO SETTINGS FILE}')

    execute_from_command_line(sys.argv)
复制代码

 

命令supervisorctl可以使用start/stop/status管理每个进程

[root@d11092353 supervisor-3.3.1-py2.7.egg-info]# supervisorctl 
dopcelery:dopcelerybeat          STOPPED   Dec 15 04:40 PM
dopcelery:dopceleryworker        RUNNING   pid 31136, uptime 0:27:58
supervisor> status dopcelery:dopcelerybeat
dopcelery:dopcelerybeat          STOPPED   Dec 15 04:40 PM
supervisor> 

 

supervisorctl API:官方文档 http://www.supervisord.org/api.html

import xmlrpclib
server = xmlrpclib.Server('http://127.0.0.1:9900/RPC2')
server.supervisor.getState()
返回 >>> {'statename': 'RUNNING', 'statecode': 1}
server.supervisor.getProcessInfo('group:name')
返回 >>> 任务状态

 

posted on   poorX  阅读(1402)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示