云网牛站
所在位置:首页 > Linux教程 > CentOS 7中安装Supervisor和Celery及使用Supervisord管理Celery程序

CentOS 7中安装Supervisor和Celery及使用Supervisord管理Celery程序

2019-02-28 15:43:19作者:夏俊稿源:云网牛站

在Virtualenv上有一个Django项目,尝试将Celery配置为与CentOS 7服务器上的Supervisord配合使用,本文介绍CentOS 7中安装Supervisor和Celery及使用Supervisord管理Celery程序,可先参考Linux下Supervisor的使用

 

安装Celery

在你的Virtualenv上,使用pip命令安装celery:

$ pip install celery

 

在CentOS 7中安装Supervisor

要在CentOS 7系统中安装Supervisor,你需要使用命令添加的epel存储库:

$ sudo yum -y install epel-release

然后从epel安装supervisor:

$ sudo yum -y install supervisor

该服务可以使用systemd进行管理,名称是supervisord。

 

使用Supervisord管理Celery程序

在使用supervisord做任何有用的事情之前,你需要在其配置中添加至少一个程序部分,程序部分将定义在调用supervisord命令时运行和管理的程序,默认情况下,Supervisor配置为读取/etc/supervisord.d目录下的所有配置文件,我将把我的celery配置文件放在/etc/supervisord.d/celery.ini上,而不是修改supervisord.conf文件,其内容如下所示:

# cat /etc/supervisord.d/celery.ini

[program:opalquickcelery]

command=/srv/venv/bin/celery worker -A opalquick --loglevel=INFO

directory=/srv/demo

user=shockwave

numprocs=1stdout_logfile=/var/log/celery/mail_beat.log

stderr_logfile=/var/log/celery/mail_beat.logautostart=true

autorestart=truepriority=999

说明:

command: This is the command to be executed when you start supervisord daemon

注:这是启动supervisord守护进程时要执行的命令。

一旦完成所有更改,然后启动supervisord守护进程:

# systemctl start supervisord

如果检查其状态,则应该看到在我们的配置文件上指定的命令已执行:

# systemctl status supervisord

supervisord.service - Process Monitoring and Control Daemon

Loaded: loaded (/usr/lib/systemd/system/supervisord.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-02-28 10:24:09; 26min ago

Process: 1879 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS)

Main PID: 1882 (supervisord)

CGroup: /system.slice/supervisord.service

├─1882 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf

├─1884 /srv/venv/bin/python /srv/venv/bin/celery worker -A opalquick --loglevel=INFO

Feb 28 10:24:09 ns2.rafikihost.com systemd[1]: Starting Process Monitoring and Control Daemon...

Feb 28 10:24:09 ns2.rafikihost.com systemd[1]: Started Process Monitoring and Control Daemon.

Supervisor还提供了一个名为supervisorctl的命令行工具,它允许你控制当前由supervisord管理的进程:

# supervisorctl status opalquickcelery

opalquickcelery RUNNING pid 1884, uptime 10:29:24

要使用supervisorctl停止该过程,请使用:

# supervisorctl stop <program-name>

要重新启动,请使用:

# supervisorctl restart <program-name>

 

相关主题

采用Apache和Supervisord在CentOS 7上安装NetBox的方法

精选文章
热门文章