celery使用supervisor守护进程

celery不能以守护进程方式运行自己,需要借助一些一些工具守护进程。这里使用supervisor进程守护。

1,安装supervisor
pip install supervisor

supervisor不支持Python3,如果你使用虚拟环境,用的Python3,那就需要退出虚拟环境,使用Python2安装supervisor

2,配置supervisor
supervisor 安装完成之后,默认是没有配置文件的,但是我们也不需要向 uwsgi 一样自己创建配置文件。使用 echo_supervisord_conf 命令就可以生成一个 supervisor 的配置文件

echo_supervisord_conf > /home/ubuntu/supervisord.conf

/home/ubuntu/supervisord.conf 这是存放supervisor配置文件的路径

打开 supervisord.conf 文件,在文件的最后添加以下语句并保存:

command=/root/.virtualenvs/myblog/bin/celery -A celery_tasks.main worker -l info
directory=/home/ubuntu/blog/blog
stdout_logfile=/home/ubuntu/blog/blog/logs/celery.log
autostart=true
autorestart=true

第一行表示设置一个名为 project的 celery,我们可以通过这个名称来控制这个进程; 第二行表示程序运行的命令,在这里我们设置的是对应的虚拟环境下的celery 执行启动celery的命令; 第三行表示程序所在的目录; 第四行表示这个进程的日志文件路径; 第五行表示当 supervisord 启动时,该程序自动启动; 第六行表示当 superisord 为运行状态时,程序自动重启;

3,启动supervisor
首先,通过 supervisord 命令启动 supervisor:

sudo supervisord

然后再通过 supervisorctl 调用配置文件启动程序: 如提示Error: No config file found at default paths (/etc/supervisord.conf, /supervisor... 可以把supervisord.conf软链接到/etc/supervisord.conf

开启守护进程

sudo supervisorctl -c /home/ubuntu/supervisord.conf

如下表示成功开启

project RUNNING pid 4558, uptime 00:00:30

已经跑起来了

4,常用命令


sudo supervisorctl -c /home/ubuntu/supervisord.conf restart celery 重启celery进程

sudo supervisorctl -c /home/ubuntu/supervisord.conf start celery 开启celery进程

sudo supervisorctl -c /home/ubuntu/supervisord.conf stop celery 停止celery进程```

你可能感兴趣的:(celery使用supervisor守护进程)