当我用 manage.py 运行我的 django 项目时,芹菜正在工作。但是,使用 uwsgi 部署项目时,情况并非如此。
运行芹菜的命令:
celery --app=project.celery:app worker --loglevel=INFO
要启动 uwsgi,我使用以下脚本:
#!/bin/bash
uwsgi --chdir=~/tender
--module=project.wsgi:application
--env DJANGO_SETTINGS_MODULE=project.settings
--master
--protocol=http
--pidfile=/tmp/project-master.pid
--socket=0.0.0.0:6969
--processes=5
--uid=1000
--gid=1000
--harakiri=20
--max-requests=5000
--vacuum
--home=~/.virtualenv3/tendervenv
--daemonize=~/tender.log
echo "uWSGI started"
在生产中,您应该将芹菜扭曲为守护进程。我建议为此使用主管。
安装主管:
$ sudo apt-get install supervisor
在/etc/supervisor/conf.d/中创建 ini 文件:
[program:celeryd]
command=/home/user/.virtualenvs/yourvenv/bin/celery worker --app=myapp -l info
stdout_logfile=/path/to/your/logs/celeryd.log
stderr_logfile=/path/to/your/logs/celeryd.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
初始化主管
$ supervisord
请参阅文档。 http://supervisord.org/introduction.html