django - Starting multiple celery daemons automatically using Jenkins -


i have ubuntu server set 5 different django sites running on it. these used testing, each developer has own site , database 1 site integrated code updated when features ready. jenkins used update each site github whenever changes pushed repository.

we added django-celery our dependencies can processing on uploaded files asynchronously. each site needs own celery queue uses correct settings (database, upload directory, etc.) particular site.

i want restart each celery server whenever code changes can latest changes automatically. have update script within our git repository jenkins runs whenever updates site. when try start celery daemon within script, celery starts, shuts down again @ end of script.

here's copy of update script:

#!/bin/bash  # delete *.pyc files find $workspace -name '*.pyc' | xargs rm  # update database […]  # run automated tests python code/manage.py test <project> --noinput test_status=$?  # refresh repo's public website touch $workspace/apache/wsgi.py  # restart our celery daemon installation /sbin/start-stop-daemon --stop -p $workspace/../celery.pid echo 'starting celery server'  # when run on command line, line starts daemon fine /sbin/start-stop-daemon --start --background --quiet --oknodo -p $workspace/../celery.pid -m --exec $workspace/code/manage.py -- celeryd --logfile=$workspace/../celery.log  echo 'celery server status: '$?  exit $test_status 

here's copy of celery log during execution of script:

[2011-05-10 20:45:41,286: warning/mainprocess] -------------- celery@ip-10-227-139-6 v2.2.6 ---- **** ----- --- * ***  * -- [configuration] -- * - **** ---   . broker:      djkombu.transport.databasetransport://guest@localhost:5672/ - ** ----------   . loader:      djcelery.loaders.djangoloader - ** ----------   . logfile:     /var/lib/jenkins/jobs/mpdaugherty-farmforce/workspace/../celery.log@warning - ** ----------   . concurrency: 1 - ** ----------   . events:      off - *** --- * ---   . beat:        off -- ******* ---- --- ***** ----- [queues]  --------------   . celery:      exchange:celery (direct) binding:celery [2011-05-10 20:45:41,333: warning/mainprocess] celery@ip-10-227-139-6 has started. [2011-05-10 20:46:28,481: warning/mainprocess] celeryd: warm shutdown (mainprocess) 

any advice how can celery daemons started jenkins not shut down? lot!

one of coworkers made work. instead of starting celery daemon directly, use at schedule , disconnect current shell.

instead of:

# restart our celery daemon installation /sbin/start-stop-daemon --stop -p $workspace/../celery.pid echo 'starting celery server'  # when run on command line, line starts daemon fine /sbin/start-stop-daemon --start --background --quiet --oknodo -p $workspace/../celery.pid -m --exec $workspace/code/manage.py -- celeryd --logfile=$workspace/../celery.log 

change to:

# restart our celery daemon installation echo "/sbin/start-stop-daemon --stop -p $workspace/../celery.pid echo 'starting celery server'" | @  # when run on command line, line starts daemon fine echo "/sbin/start-stop-daemon --start --background --quiet --oknodo -p $workspace/../celery.pid -m --exec $workspace/code/manage.py -- celeryd --logfile=$workspace/../celery.log" | @ 

Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -