From 7d96ecbe3054c3a913cc401fa13fe54aa376598c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Zapke-Gru=CC=88ndemann?= Date: Wed, 8 Feb 2012 19:59:22 +0100 Subject: introduce django-supervisor --- .gitignore | 2 ++ README.rst | 11 +++-------- requirements.txt | 1 + sublab_project/settings.py | 1 + sublab_project/supervisord.conf | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 sublab_project/supervisord.conf diff --git a/.gitignore b/.gitignore index 02b42bd..b80f8de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ *.db *.log +*.pid *.pyc +*.rdb *.swp media sublab_project/local_settings.py diff --git a/README.rst b/README.rst index 3080d44..258c481 100644 --- a/README.rst +++ b/README.rst @@ -59,15 +59,10 @@ Finally start the development webserver:: (sublab_website)$ ./manage.py runserver -To run the task queue you need to start Redis first. Then start the Celery_ -daemon in a new terminal:: +To use the task queue you need to have redis-server installed. Use supervisord +to start the Celery_ daemons, redis-server and runserver with one command:: - (sublab_website)$ ./manage.py celeryd -B -E -l info - -To be able to see the tasks in the Django admin you need to start -``celerycam`` in a third terminal:: - - (sublab_website)$ ./manage.py celerycam + (sublab_website)$ ./manage.py supervisor License ======= diff --git a/requirements.txt b/requirements.txt index 5ffaf71..287d583 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,3 +13,4 @@ django-redisession==0.2 sorl-thumbnail==11.12 django-flatblocks==0.6.0 argparse==1.2.1 +django-supervisor==0.2.5 diff --git a/sublab_project/settings.py b/sublab_project/settings.py index 664a7d3..8eeb475 100644 --- a/sublab_project/settings.py +++ b/sublab_project/settings.py @@ -144,6 +144,7 @@ INSTALLED_APPS = ( 'sublab_monitor', 'flatblocks', 'matekarte', + 'djsupervisor' ) # A sample logging configuration. The only tangible logging diff --git a/sublab_project/supervisord.conf b/sublab_project/supervisord.conf new file mode 100644 index 0000000..c940dfd --- /dev/null +++ b/sublab_project/supervisord.conf @@ -0,0 +1,33 @@ +[program:gunicorn] +command={{ PYTHON }} {{ PROJECT_DIR }}/manage.py run_gunicorn +{% if settings.DEBUG %} +exclude=true +{% endif %} + +{% if not settings.DEBUG %} +[program:runserver] +exclude=true +{% endif %} + +[program:celeryd] +{% if settings.DEBUG %} +command={{ PYTHON }} {{ PROJECT_DIR }}/manage.py celeryd -E --loglevel=INFO +{% else %} +command={{ PYTHON }} {{ PROJECT_DIR }}/manage.py celeryd -E +{% endif %} +directory={{ PROJECT_DIR }} +numprocs=1 +startsecs=5 +; Need to wait for currently executing tasks to finish at shutdown. +; Increase this if you have very long running tasks. +stopwaitsecs = 600 + +[program:celerycam] +command={{ PYTHON }} {{ PROJECT_DIR }}/manage.py celerycam + +[program:redis] +{% if settings.DEBUG %} +command=redis-server +{% else %} +command=redis-server +{% endif %} -- cgit v1.2.1