[SP-pm] WWW::Curl::Multi

Luis Motta Campos luismottacampos at yahoo.co.uk
Fri Sep 4 01:52:04 PDT 2009


jimmy wrote:
> 
> eu uso o WWW::Curl::Easy para fazer download de cerca de 
> 1500 arquivos/dia, mas faço isso 1 a 1 e gostaria de disparar umas
> 20 requisições por vez, e especificamente o WWW::Curl::Multi não entendi
> sua função e por isso não sei se é aplicável nesse caso.
> 
> desses 1500 arquivos/dia, eu retiro cerca de 20.000 códigos que precisam
> ser consultados em um site, fazendo um a um demora no mínimo 8 horas
> para terminar, usando fork() (esse teste fiz em shell script mesmo) e
> gravando o retorno no disco, eu gasto entre 2 e 3 horas.

Jimmy,

Que protocolo você usa para fazer download, e de onde é que vem os
dados? Se você usa HTTP e todos os dados estão no mesmo website, será
que não seria melhor costurar um acordo com o responsável pelo website
em questão, e obter os dados em um formato mais fácil?

Outra coisa: O que você precisa é de outras bibliotecas mais fáceis de
usar que o Curl, que é mal documentado e provavelmente mal mantido. Eu
recomendo fortemente o LWP.

Para acelerar a obtenção de páginas eu recomendo que você use diversos
processos em paralelo. A sugestão do Blabos de usar o
Parallel::ForkManager parece ser boa. Eu sou tradicionalista e gosto de
usar o bom e velho fork() eu mesmo. ;)

De qualquer forma, você precisa decidir como obter e armazenar os dados
-- isso também vai influenciar na performance dos seus processos. Eu
recomendo tratar dos dados mais tarde, depois que você já os tenha
todos. Assim, você economiza tempo durante as requisições.

Num outro /front/, é importante entender como a sua conexão com a
internet influencia a quantidade de dados que você pode obter: quanto
mais rápida a sua conexão, mais informação você pode puxar, até o limite
que o servidor do outro lado permitir. Balanço e entendimento são as
minhas recomendações.

Putamplexos e boa sorte.
-- 
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.


More information about the SaoPaulo-pm mailing list