温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python如何使用supervisord后台启动celery服务

发布时间:2022-07-20 09:49:53 来源:亿速云 阅读:231 作者:iii 栏目:开发技术

这篇文章主要讲解了“python如何使用supervisord后台启动celery服务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python如何使用supervisord后台启动celery服务”吧!

前言

Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。
它可以很方便的监听、启动、停止、重启一个或多个进程。
用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

环境准备

centos 安装 supervisord

yum install -y supervisord

debian 安装 supervisord

apt-get install -y supervisor

supervisord.conf

安装完成后在/etc/supervisor 目录下会有个配置文件 supervisord.conf

# cd /etc/supervisor /etc/supervisor# ls conf.d	supervisord.conf

cat 查看内容

# cat supervisord.conf  ; supervisor config file [unix_http_server] file=/var/run/supervisor.sock   ; (the path to the socket file) chmod=0700                       ; sockef file mode (default 0700) [supervisord] logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP) ; the below section must remain in the config file for RPC ; (supervisorctl/web interface) to work, additional interfaces may be ; added by defining them in separate rpcinterface: sections [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket ; The [include] section can just contain the "files" setting.  This ; setting can list multiple files (separated by whitespace or ; newlines).  It can also contain wildcards.  The filenames are ; interpreted as relative to this file.  Included files *cannot* ; include files themselves. [include] files = /etc/supervisor/conf.d/*.conf

在项目中我们需要用到此配置,可以在项目根目录导出一份

echo_supervisord_conf > ./supervisord.conf

文件内容编写

supervisord.conf文件内容编写, 前面内容不用改,直接接着在后面写
比如我需要后台启动celery的worker和beat服务

; Sample supervisor config file. ; ; For more information on the config file, please see: ; http://supervisord.org/configuration.html ; 前面文档省略,不用删,接着后面写 [program:celery-worker] command=celery -A hrun2_web worker -l info ; 管理命令,supervisor不支持后台进程 process_name=%(program_name)s #user=root                                 ;进程启动用户 autostart=true                           ;是否随supervisor启动 autorestart=true                         ;是否在挂了之后重启,意外关闭后会重启,比如kill掉! startretries=3                           ;启动尝试次数 stderr_logfile=./celery_worker.log           ;标准输出文件 stdout_logfile=./celery_worker.log        ;标准输出文件 loglevel=info                            ;日志的级别 [program:celery-beat] command=celery -A hrun2_web beat ; 管理命令,supervisor不支持后台进程 process_name=%(program_name)s #user=root                                 ;进程启动用户 autostart=true                           ;是否随supervisor启动 autorestart=true                         ;是否在挂了之后重启,意外关闭后会重启,比如kill掉! startretries=3                           ;启动尝试次数 stderr_logfile=./celery_beat.log          ;标准输出文件 stdout_logfile=./celery_beat.log        ;标准输出文件 loglevel=info                            ;日志的级别

启动服务

启动服务

supervisord -c /path/supervisord.conf

关闭服务

supervisorctl shutdown

运行过程,启动没问题,不显示任何内容,如果需要关闭用shutdown

root@13107c465557:/code# supervisord -c ./supervisord.conf root@13107c465557:/code# supervisorctl shutdown Shut down

查看启动的服务

supervisorctl status

执行结果如下

root@13107c465557:/code# supervisorctl status
celery-worker RUNNING pid 234, uptime 0:00:14
celery-beat RUNNING pid 235, uptime 0:00:14

说明启动了celery和celery-beat两个服务

查看日志

我们在配置里面指定了./celery_worker.log 文件保存运行日志,所以可以直接查看这个文件

tail -f celery_worker.log -n 30

运行就可以看到worker运行的日志了

感谢各位的阅读,以上就是“python如何使用supervisord后台启动celery服务”的内容了,经过本文的学习后,相信大家对python如何使用supervisord后台启动celery服务这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI