job A → WebClient A → proxy A → destination
job B → WebClient B → proxy B → destination

동시에 동작하는 브라우징 ID마다 구성된 HtmlUnit WebClient를 할당하세요. 그 WebClientOptions가 ProxyConfig를 소유합니다. 작업이 실행되는 동안 경로는 고정된 것으로 취급하세요. 공유 작업 큐가 하나의 공유 가변 브라우저를 요구하지는 않습니다. HTTP ProxyConfig를 쓰는 허용된 공개 페이지 점검에서는 작업자에게 할당하기 전에 HTTP 프록시 목록에서 후보 엔드포인트를 고르세요.

페이지, 이후 로드, 세션 상태는 그 클라이언트에 유지하세요. 프록시 옵션을 바꿔도 이미 수립된 연결을 이식할 수는 없습니다. 클라이언트를 분리하면 브라우저 상태도 분리되므로, 라우팅만으로 ID가 결정된다고 가정하지 말고 의도한 공유 로그인을 계획하세요. 프록시 인증은 설치된 HtmlUnit 버전의 인터페이스를 사용하며 웹사이트 로그인과는 별개입니다.

브라우저를 풀에 돌려주기 전에 완료를 정의하세요. 최상위 응답은 스크립트나 백그라운드 요청이 계속되는 동안 도착할 수 있습니다. 그 작업을 끝내거나 취소하고, 다음 ID가 물려받아서는 안 되는 상태를 지우며, 그 경계를 안정적으로 세울 수 없다면 클라이언트를 퇴역시키세요.

활성 클라이언트 수를 제한하고 완료된 WebClient를 닫으세요. 브라우저는 분석하고 스크립트를 실행할 수 있어 단순 전송보다 비용이 큽니다. 반환된 HTML만 필요한 작업이라면 더 작은 HTTP 클라이언트가 같은 자원 예산에서 더 많은 동시 요청을 지원할 수 있습니다.

관련 글