feat(worker): Add db_worker service with automatic restart and logging
feat(task_overview): Display generated series in task overview docs(README): Update documentation for background task workers and troubleshooting
This commit is contained in:
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
|
||||
PYTHON_BIN="${PYTHON_BIN:-$ROOT_DIR/.venv/bin/python}"
|
||||
DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:-rad.settings}"
|
||||
RESTART_DELAY="${RESTART_DELAY:-3}"
|
||||
MAX_RESTARTS="${MAX_RESTARTS:-0}"
|
||||
|
||||
if [ ! -x "$PYTHON_BIN" ]; then
|
||||
echo "Python binary not found or not executable: $PYTHON_BIN" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export DJANGO_SETTINGS_MODULE
|
||||
|
||||
restart_count=0
|
||||
|
||||
echo "Starting persistent db_worker loop"
|
||||
echo "Root: $ROOT_DIR"
|
||||
echo "Settings: $DJANGO_SETTINGS_MODULE"
|
||||
echo "Python: $PYTHON_BIN"
|
||||
|
||||
while true; do
|
||||
echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] Launching db_worker"
|
||||
"$PYTHON_BIN" "$ROOT_DIR/manage.py" db_worker
|
||||
exit_code=$?
|
||||
|
||||
echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] db_worker exited with code $exit_code"
|
||||
|
||||
if [ "$MAX_RESTARTS" -gt 0 ] && [ "$restart_count" -ge "$MAX_RESTARTS" ]; then
|
||||
echo "Max restarts reached ($MAX_RESTARTS). Exiting." >&2
|
||||
exit "$exit_code"
|
||||
fi
|
||||
|
||||
restart_count=$((restart_count + 1))
|
||||
echo "Restarting in ${RESTART_DELAY}s (restart #$restart_count)"
|
||||
sleep "$RESTART_DELAY"
|
||||
done
|
||||
Reference in New Issue
Block a user