#!/bin/bash -e source $OPENSHIFT_CARTRIDGE_SDK_BASH PATH=$OPENSHIFT_DATA_DIR:$OPENSHIFT_DATA_DIR/config/:${OPENSHIFT_CELERY_DIR}bin/:${OPENSHIFT_CELERY_DIR}usr/bin:${OPENSHIFT_CELERY_DIR}conf.d:$PATH #TODO add scaling, better status, variable worker names, stop workers properly function start { export PYTHONPATH=$OPENSHIFT_DATA_DIR:$OPENSHIFT_DATA_DIR/config/:$OPENSHIFT_REPO_DIR/.openshift:$OPENSHIFT_REPO_DIR/wsgi::$OPENSHIFT_CELERY_DIR/conf.d:$OPENSHIFT_REPO_DIR:$PYTHONPATH PYTHONPATH=$OPENSHIFT_DATA_DIR:$OPENSHIFT_DATA_DIR/config/:$OPENSHIFT_REPO_DIR/.openshift:$OPENSHIFT_REPO_DIR/wsgi::$OPENSHIFT_CELERY_DIR/conf.d:$OPENSHIFT_REPO_DIR:$PYTHONPATH echo "Starting Celery, cmd: ${OPENSHIFT_CELERY_DIR}usr/celery multi start worker --config=${OPENSHIFT_CELERY_CONFIG=celeryconfig} --loglevel=DEBUG --hostname=$OPENSHIFT_APP_DNS --pidfile=${OPENSHIFT_CELERY_DIR}etc/celeryd.pid --logfile=${OPENSHIFT_HOMEDIR}app-root/logs/celery_log.txt" echo `${OPENSHIFT_CELERY_DIR}usr/celery multi start worker --config=${OPENSHIFT_CELERY_CONFIG=celeryconfig} --loglevel=DEBUG --hostname=$OPENSHIFT_APP_DNS --pidfile=${OPENSHIFT_CELERY_DIR}etc/celeryd.pid --logfile=${OPENSHIFT_HOMEDIR}app-root/logs/celery_log.txt` > ${OPENSHIFT_APP_ROOT}app-root/logs/celery_log.txt ${OPENSHIFT_CELERY_DIR}usr/celery multi start worker --config=${OPENSHIFT_CELERY_CONFIG=celeryconfig} --loglevel=DEBUG --hostname=$OPENSHIFT_APP_DNS --pidfile=${OPENSHIFT_CELERY_DIR}etc/celeryd.pid --logfile=${OPENSHIFT_HOMEDIR}app-root/logs/celery_log.txt } function stop { if ps -p `cat ${OPENSHIFT_CELERY_DIR}etc/celeryd.pid` > /dev/null; then kill -9 `cat ${OPENSHIFT_CELERY_DIR}etc/celeryd.pid` else echo "nothing to kill" fi echo "stopped" } function restart { celery multi restart worker --pidfile=${OPENSHIFT_CELERY_DIR}etc/celeryd.pid echo "not yet implemented" } function status() { pid=`cat ${OPENSHIFT_CELERY_DIR}etc/celeryd.pid` info=`celery multi show worker` client_result $pwd if [ -f $pid ] && ( kill -0 $(cat $pid) ); then client_result "Celery is running ${info} at pid:${pid}" else client_result "Celery is not running" fi } function catchall { echo "not yet implemented" } # Ensure arguments. if ! [ $# -gt 0 ]; then echo "Usage: $0 [start|restart|stop|status]" exit 1 fi # Source utility functions. source $OPENSHIFT_CARTRIDGE_SDK_BASH case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; reload) catchall ;; tidy) catchall ;; pre-build) catchall ;; build) catchall ;; deploy) catchall ;; post-deploy) catchall ;; *) exit 0 esac exit 0