425cfcc7da
Problem: Script rescanned ALL domains on EVERY invocation because cache file included process ID ($$), making it unique each time. For servers with hundreds of domains, this caused 30-45 second hangs on startup. Root cause: WP_CACHE_FILE="/tmp/wp-sites-cache-$$" was deleted on exit Solution implemented: 1. Persistent cache file: /tmp/wp-sites-cache (no $$) 2. Cache TTL: 1 hour (3600 seconds) - automatic expiration 3. Removed cache deletion from exit trap 4. Updated both initialize_wp_cache() and get_wp_sites_cached() to check TTL 5. Added progress messages (cached vs fresh scan) Performance improvement: BEFORE: First run ~45s, every subsequent run ~45s (no caching) AFTER: First run ~45s, cached runs <1s (instant), refresh every hour User experience: - First run: "Scanning for WordPress installations (first run)..." - Cached runs: "Using cached WordPress site list (refreshed hourly)" - Stale cache: "Refreshing WordPress site list (cache expired)..." This fixes the "insanely long" startup time the user reported. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>