在做正式環境,這個是必須的。html
因而找了兩小時文檔,python
如下這個方法,相對來講好實現。git
就是要注意supervisord.conf的目錄存放位置。github
放在DJANGO的PROJ目錄下,是最佳位置。shell
https://thomassileo.name/blog/2012/08/20/how-to-keep-celery-running-with-supervisor/app
如何你不幸的和我同樣,沒法PIP只能用setup.py的話,可能celery和supervisord都要用絕對目錄this
[program:celeryd] command=/usr/local/python27/bin/celery worker --app=ism -c 4 -l info stdout_logfile=/var/log/celeryd.log stderr_logfile=/var/log/celeryd.log autostart=true autorestart=true startsecs=10 stopwaitsecs=600
Supervisor is a Python program that allows you to control and keep running any unix processes. It can also restart crashed processes. I use it to make sure Celery workers are always running.pwa
I'm using virtualenv, Celery 3.0.5, and supervisor 3.0. I'm assuming Celery is already installed and configured.
First, you need to install supervisor in your virtualenv and generate a configuration file.
I store a supervisord.conf
config file at the root of each project, and also, be careful to use theabsolute path to the Python interpreter of the virtualenv.
$ pip install supervisor
$ cd /path/to/your/project $ echo_supervisord_conf > supervisord.conf
Next, just add this section after the [supervisord]
section:
[program:celeryd]
command=/home/thomas/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
It's a simplified version of the Celery supervisor example configuration file, adapted to work with virtualenvs.
Just run supervisord
in your project directory.
$ supervisord
Then, you can use the supervisorctl
command to enter the interactive shell. Type help
to get started. You can also execute supervisor command directly:
$ supervisorctl tail celeryd
$ supervisorctl restart celeryd
If you have any tips or suggestions, don't hesitate !
~~~~~~~~~~~~~~~