4cb4e1c50289dea9a6dd1aa1c8f18b35871dcd13
New worker flow (enabled via USE_SESSION_POOL=true): 1. Worker claims up to 6 tasks for same geo (atomically marked claimed) 2. Gets Evomi proxy for that geo 3. Checks IP availability (not in use, not in 8hr cooldown) 4. Locks IP exclusively to this worker 5. Runs preflight with locked IP 6. Executes tasks (3 concurrent) 7. After 6 tasks, retires session (8hr IP cooldown) 8. Repeats with new IP Key files: - migrations/112_worker_session_pool.sql: Session table + atomic claiming - services/worker-session.ts: Session lifecycle management - tasks/task-worker.ts: sessionPoolMainLoop() with new flow - services/crawl-rotator.ts: setFixedProxy() for session locking Failed tasks return to pending for retry by another worker. No two workers can share same IP simultaneously. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
CI/CD enabled
test trigger
CI trigger
Description
Languages
TypeScript
54.5%
JavaScript
37.5%
PLpgSQL
3.6%
PHP
3.1%
Python
0.5%
Other
0.7%