rates/backend
jtricerolph 6b7f00b40a Parallel scrape workers (proxy-gated, configurable)
Fan a scrape run out across N workers, each with its own DB session and
its own scraper backend — and since every backend picks a random sticky
session id, each worker scrapes from a distinct residential IP. Dates are
interleaved across workers so each covers a spread of the range. Cuts a
150-date batch from ~30-45 min to ~12-15 min at 3 workers.

- booking_scraper_concurrency config key (default 3); Settings → Scraper
  Proxy has a "Parallel workers" field
- Forced to 1 when the proxy is off (N workers would share one IP and
  hammer it) or when there's a single date
- Both manual and queue paths routed through _scrape_dates_concurrent;
  workers mark their own queue items
- Per-worker rotate-on-block replaces the old global pause-on-block

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 22:13:23 +00:00
..
api Use pasted Booking.com search URL to pin scrape destination 2026-07-05 22:00:28 +00:00
jobs Port occupancy sync + category ordering from the forecasting version 2026-07-05 14:18:03 +00:00
services Parallel scrape workers (proxy-gated, configurable) 2026-07-05 22:13:23 +00:00
auth.py Fix require_cap TypeError, rewrite /analysis/comparison, add room category sync 2026-07-05 13:47:10 +00:00
database.py Add Rate Monitor app — Booking.com + direct booking engine competitor rates 2026-07-05 12:06:30 +00:00
Dockerfile Fix backend startup: launch Xvfb directly, not via xvfb-run 2026-07-05 16:35:03 +00:00
main.py Add Rate Monitor app — Booking.com + direct booking engine competitor rates 2026-07-05 12:06:30 +00:00
migrate_direct_data.py Add Rate Monitor app — Booking.com + direct booking engine competitor rates 2026-07-05 12:06:30 +00:00
requirements.txt Scraper stealth: headful+xvfb, playwright-stealth, coherent UA, warm-up, click-paginate 2026-07-05 16:26:01 +00:00
scheduler.py Port occupancy sync + category ordering from the forecasting version 2026-07-05 14:18:03 +00:00
schema.sql Pin Booking.com search to a dest_id 2026-07-05 21:49:57 +00:00