Files
openshift-celery-cartridge/bin/control
T
2015-04-10 16:11:25 +08:00

64 lines
2.0 KiB
Bash
Executable File

#!/bin/bash -e
PATH=${OPENSHIFT_CELERY_DIR}bin/:${OPENSHIFT_CELERY_DIR}usr/bin:$PATH
#TODO add scaling, better status, variable worker names
function start {
if env | grep -q ^OPENSHIFT_CELERY_IMPORTS=
then
echo "Starting"
echo "${OPENSHIFT_CELERY_DIR}usr/celery worker -A ${OPENSHIFT_CELERY_IMPORTS=OPENSHIFT_APP_NAME} -b ${OPENSHIFT_CELERY_BROKER_URL} --pidfile=${OPENSHIFT_CELERY_DIR}etc/celeryd.pid --loglevel=DEBUG --logfile=${OPENSHIFT_TMP_DIR}celery_log.txt" >> `echo $OPENSHIFT_TMP_DIR`blarg.txt
${OPENSHIFT_CELERY_DIR}usr/celery multi start worker --app=${OPENSHIFT_CELERY_IMPORTS=${OPENSHIFT_APP_NAME}} --broker=${OPENSHIFT_CELERY_BROKER_URL="amqp://guest@localhost//"} --pidfile=${OPENSHIFT_CELERY_DIR}etc/celeryd.pid --hostname=${OPENSHIFT_APP_DNS} --loglevel=DEBUG --logfile=${OPENSHIFT_TMP_DIR}celery_log.txt
else
echo "Can't start celery as env var OPENSHIFT_CELERY_IMPORTS has not been set. More: https://developers.openshift.com/en/managing-environment-variables.html"
fi
}
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"
}
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