Dê a cada worker HtmlUnit um proxy estável
Defina as opções de proxy do HtmlUnit antes de as páginas carregarem e impeça que workers paralelos alterem a rota de um cliente de navegador compartilhado.
job A → WebClient A → proxy A → destination
job B → WebClient B → proxy B → destinationAtribua um HtmlUnit WebClient configurado a cada identidade de navegação simultânea. Seu WebClientOptions possui o ProxyConfig; trate a rota como fixa enquanto a tarefa está em execução. Uma fila de tarefas compartilhada não exige um navegador mutável compartilhado. Para verificações permitidas de páginas públicas com HTTP ProxyConfig, escolha endpoints candidatos na lista de proxies HTTP antes de atribuí-los aos workers.
Mantenha a página, os carregamentos posteriores e o estado da sessão com esse cliente. Alterar as opções de proxy não pode transplantar conexões já estabelecidas. Clientes separados também criam estado de navegador separado, então planeje qualquer login compartilhado pretendido em vez de supor que apenas o roteamento determina a identidade. A autenticação de proxy usa a interface da versão instalada do HtmlUnit e permanece separada do login no site.
Defina a conclusão antes de devolver um navegador a um pool. A resposta de nível superior pode chegar enquanto scripts ou solicitações em segundo plano continuam. Termine ou cancele esse trabalho, limpe o estado que a próxima identidade não deve herdar e aposente o cliente se esse limite não puder ser estabelecido de forma confiável.
Limite o número de clientes ativos e feche WebClients concluídos. Um navegador analisa e pode executar scripts, o que custa mais que uma transferência simples. Para uma tarefa que precisa apenas do HTML retornado, um cliente HTTP menor pode suportar mais solicitações simultâneas dentro do mesmo orçamento de recursos.