Atualmente existem três lugares que fazem requisições HTTP para pegar dados, é possível ver pela pesquisa por urlopen. Para o uso "isolado" dessas funções é tranquilo mantermos apenas o uso do urlopen mas isso pode causar problemas em ambientes produtivos que irão usar bastante essas funções, isso porque a urllib não permite ter um pool de conexões fazendo com que cada chama abra uma nova conexão implicando em basicamente duas coisas:
- Aumento de latência
- Aumento do consume de recursos
Infelizmente não temos essa possibilidade utilizando apenas a biblioteca urllib e teríamos que utilizar algo biblioteca terceira como:
- urllib3
- requests
- httpx (talvez essa seja uma boa alternativa se quisermos disponibilizar essas funções usando
async)
Idealmente, com a atual API dessa biblioteca, esse detalhe seria "escondido" ou então poderíamos permitir uma configuração "global" de pool de conexões que é utilizado pelos módulos
Atualmente existem três lugares que fazem requisições HTTP para pegar dados, é possível ver pela pesquisa por
urlopen. Para o uso "isolado" dessas funções é tranquilo mantermos apenas o uso dourlopenmas isso pode causar problemas em ambientes produtivos que irão usar bastante essas funções, isso porque aurllibnão permite ter um pool de conexões fazendo com que cada chama abra uma nova conexão implicando em basicamente duas coisas:Infelizmente não temos essa possibilidade utilizando apenas a biblioteca
urllibe teríamos que utilizar algo biblioteca terceira como:async)Idealmente, com a atual API dessa biblioteca, esse detalhe seria "escondido" ou então poderíamos permitir uma configuração "global" de pool de conexões que é utilizado pelos módulos