33 lines
735 B
Bash
33 lines
735 B
Bash
|
#!/bin/bash
|
||
|
# auto restart beat scheduler
|
||
|
# https://github.com/celery/django-celery-beat/issues/894
|
||
|
|
||
|
if [[ -n "$DJANGO_DEBUG" ]]; then
|
||
|
LOGLEVEL="DEBUG"
|
||
|
else
|
||
|
LOGLEVEL="INFO"
|
||
|
fi
|
||
|
|
||
|
COMMAND="celery -A task beat --loglevel=$LOGLEVEL --scheduler django_celery_beat.schedulers:DatabaseScheduler"
|
||
|
TIMEOUT=3600
|
||
|
|
||
|
while true; do
|
||
|
echo "Starting process beat scheduler"
|
||
|
|
||
|
$COMMAND &
|
||
|
PID=$!
|
||
|
|
||
|
sleep $TIMEOUT
|
||
|
|
||
|
# Kill the process if still running
|
||
|
if kill -0 $PID 2>/dev/null; then
|
||
|
echo "Killing beat process after $TIMEOUT seconds"
|
||
|
kill $PID
|
||
|
# Wait a bit to allow graceful shutdown, then force kill if needed
|
||
|
sleep 10
|
||
|
kill -9 $PID 2>/dev/null
|
||
|
fi
|
||
|
|
||
|
echo "Restarting beat..."
|
||
|
done
|