부하테스트(N=10) 실측: 쿠팡 브라우저 재기동 경로 행으로 워커 2/3가 12~15분 정지(쿠팡 검색 1콜 880s), heartbeat 가 lease 를 계속 갱신해 reaper 회수 불가 + stuck_running=0 으로 관측 사각. 이에 대한 방어: - P1 잡 데드라인: runner._process 에 wait_for(기본 300s, env LPS_JOB_DEADLINE_SEC) — 초과 시 취소·fail → 백오프 재큐/DEAD - 웜업 시도당 60s 타임아웃 — 웜업이 어댑터 락을 쥔 채 행하면 그 워커의 실 검색이 전부 락 대기로 동반 정지(실측 케이스) - P2 browser reaper: close_if_idle 에 60s 타임아웃 — 한 어댑터 close 행이 정리 루프 전체를 멈추는 것 방지(실측 케이스) - P3 stuck_running: lease 만료 OR 실행 10분 초과(run_started_at) — 행 상태에서도 지표·알림에 잡히게 테스트 5건 추가(데드라인 DEAD/재큐, stuck 지표, reaper 격리) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .gitkeep | ||
| bot_detection.py | ||
| job_crud.py | ||
| negative_cache.py | ||
| price_history.py | ||