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

Назначьте настроенный HtmlUnit WebClient каждой одновременной идентичности просмотра. Его WebClientOptions владеет ProxyConfig; считайте маршрут фиксированным, пока задача выполняется. Общая очередь задач не требует одного общего изменяемого браузера. Для разрешённых проверок публичных страниц с HTTP ProxyConfig выбирайте кандидатные конечные точки из списка HTTP-прокси до назначения их рабочим.

Храните страницу, последующие загрузки и состояние сеанса у этого клиента. Изменение параметров прокси не может перенести уже установленные соединения. Отдельные клиенты создают и отдельное состояние браузера, поэтому планируйте любой предполагаемый общий вход, а не исходите из того, что идентичность определяет только маршрут. Аутентификация прокси использует интерфейс установленной версии HtmlUnit и остаётся отдельной от входа на сайт.

Определите завершение до возврата браузера в пул. Ответ верхнего уровня может прийти, пока скрипты или фоновые запросы продолжаются. Завершите или отмените эту работу, очистите состояние, которое следующая идентичность не должна наследовать, и выведите клиент из эксплуатации, если эту границу нельзя надёжно установить.

Ограничьте число активных клиентов и закрывайте завершённые WebClients. Браузер разбирает и может выполнять скрипты, что стоит дороже простой передачи. Для задачи, которой нужен только возвращённый HTML, меньший HTTP-клиент может поддержать больше одновременных запросов в том же бюджете ресурсов.

Похожие статьи