← back to Wallco Ai

scripts/cron-backfill-rooms.sh

19 lines

#!/usr/bin/env bash
# Nightly free-local room backfill for wallco.ai. flock-guarded (no overlap),
# capped per run (idempotent — chips away at the roomless backlog), $0 (PIL only).
# Mirrors scripts/cron-build-tifs.sh. Install on PROD (where tiles live in
# data/generated and the server serves data/rooms):
#   crontab line →  20 3 * * *  /root/public-projects/wallco-ai/scripts/cron-backfill-rooms.sh
set -euo pipefail
cd "$(dirname "$0")/.."
LOCK=/tmp/wallco-backfill-rooms.lock
LOG=/tmp/wallco-backfill-rooms.log
exec 9>"$LOCK"
if ! flock -n 9; then echo "$(date '+%F %T') already running — skip" >>"$LOG"; exit 0; fi
echo "=== $(date '+%F %T') backfill-rooms start ===" >>"$LOG"
# Cap each run so a fresh batch can't peg the box; idempotent so it catches up over nights.
# Re-link is now $0/instant (skip-if-exists), so a high default safely heals a
# FULL deploy-clobber in one nightly run instead of ~19 nights at 150.
python3 scripts/backfill-rooms.py --limit "${ROOM_BACKFILL_LIMIT:-5000}" >>"$LOG" 2>&1
echo "=== $(date '+%F %T') backfill-rooms done ===" >>"$LOG"