#!/bin/sh set -e if [ "${SCHEDULER_ENABLED:-0}" != "1" ]; then DISABLED_SLEEP="${SCHEDULER_DISABLED_SLEEP_SECONDS:-300}" if [ "${DISABLED_SLEEP}" -lt 30 ]; then echo "SCHEDULER_DISABLED_SLEEP_SECONDS must be >= 30" exit 1 fi echo "Scheduler disabled (SCHEDULER_ENABLED=${SCHEDULER_ENABLED:-0}). Entering idle mode with ${DISABLED_SLEEP}s sleep." while true; do echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] Scheduler disabled; sleeping for ${DISABLED_SLEEP}s." sleep "${DISABLED_SLEEP}" done fi INTERVAL="${DAILY_ORCHESTRATION_INTERVAL_SECONDS:-${SCHEDULER_INTERVAL_SECONDS:-86400}}" if [ "${INTERVAL}" -lt 60 ]; then echo "DAILY_ORCHESTRATION_INTERVAL_SECONDS/SCHEDULER_INTERVAL_SECONDS must be >= 60" exit 1 fi echo "Starting HoopScout scheduler loop interval=${INTERVAL}s" while true; do echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] Running daily orchestration..." if python manage.py run_daily_orchestration; then echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] Daily orchestration completed successfully." else echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] Daily orchestration failed." fi echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] Sleeping for ${INTERVAL}s." sleep "${INTERVAL}" done