在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>
相关主题 |