34 lines
825 B
Bash
34 lines
825 B
Bash
#!/bin/bash -e
|
|
#
|
|
# Run a celery worker
|
|
#
|
|
echo "Running Datatracker checks..."
|
|
./ietf/manage.py check
|
|
|
|
if ! ietf/manage.py migrate --check ; then
|
|
echo "Unapplied migrations found, waiting to start..."
|
|
sleep 5
|
|
while ! ietf/manage.py migrate --check ; do
|
|
echo "... still waiting for migrations..."
|
|
sleep 5
|
|
done
|
|
fi
|
|
|
|
echo "Starting Celery..."
|
|
|
|
cleanup () {
|
|
# Cleanly terminate the celery app by sending it a TERM, then waiting for it to exit.
|
|
if [[ -n "${celery_pid}" ]]; then
|
|
echo "Gracefully terminating celery worker. This may take a few minutes if tasks are in progress..."
|
|
kill -TERM "${celery_pid}"
|
|
wait "${celery_pid}"
|
|
fi
|
|
}
|
|
|
|
trap 'trap "" TERM; cleanup' TERM
|
|
|
|
# start celery in the background so we can trap the TERM signal
|
|
celery "$@" &
|
|
celery_pid=$!
|
|
wait "${celery_pid}"
|