Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ A fast, native cache warmer written in Go for automatically warming caches via s
- 🗺️ **Sitemap Support**: Including nested sitemaps and .gz compression
- ⚙️ **Configurable**: TOML configuration file
- 📈 **Cache Flush Tracking**: Mark cache flushes for re-warming
- 🛡️ **429 Rate Limit Handling**: Adaptive concurrency reduction on HTTP 429, applies to both sitemap fetching and URL warming

## 📦 Installation

Expand Down Expand Up @@ -88,6 +89,11 @@ min_delay_ms = 50
retries = 2
retry_backoff_seconds = 1.0

# 429 rate limit handling (adaptive concurrency)
rate_limit_cooldown_seconds = 120
rate_limit_recover_after = 50
rate_limit_max_429_retries = 10

[load]
max_load = 2.0
check_interval_seconds = 2
Expand Down Expand Up @@ -189,6 +195,9 @@ All commands accept the `--config path/to/config.toml` flag.
- `min_delay_ms`: Minimum delay between requests (rate limiting)
- `retries`: Number of retry attempts on failures
- `retry_backoff_seconds`: Backoff multiplier for retries
- `rate_limit_cooldown_seconds`: Cooldown duration after 429 (default: 120)
- `rate_limit_recover_after`: Consecutive successes needed before increasing concurrency again (default: 50)
- `rate_limit_max_429_retries`: Max retries per URL on 429 before giving up (default: 10)

### [load]
- `max_load`: Maximum 1-minute load average (CPU protection)
Expand Down Expand Up @@ -246,6 +255,7 @@ CGO_ENABLED=1 go build -o cache-warmer cache-warmer.go
- Check firewall/IP whitelist
- Increase timeout in config
- Check server logs for rate limiting
- If you see many 429 errors: the rate limiter will automatically reduce concurrency; increase `rate_limit_max_429_retries` if URLs are being marked failed too quickly

### Warmer is slow

Expand Down
Loading
Loading