[SP-pm] requisições extremamente longas
Daniel de Oliveira Mantovani
daniel.oliveira.mantovani at gmail.com
Thu Mar 21 17:48:12 PDT 2013
BTW, André você não postou o erro. Não da para saber qual é o
problema, mas provavelmente o timeout default foi ultrapassado.
O timeout default do WWW::Mechanize é de 180 segundos, você pode mudar
isso na hora de instâncias o módulo passando um atributo como
argumento.
<code>
my $m = WWW::Mechanize->new(autocheck => 1,
timeout => 9000
);
$m->get('http://whatever.com');
if(!$m->succes){
#erro
}
else{
#ok, o arquivo foi gerado processe-o!
}
</code>
2013/3/21 Andre Carneiro <andregarciacarneiro at gmail.com>:
> Salve!
>
> Estou com problemas para processar requisições extremamente longas. A
> situação é a seguinte:
>
> - Tenho um servidor Apache rodando Ruby on Rails, que por sua vez, roda um
> front-end de um sistema de pesquisas(survey).
> - Tenho um script Perl que precisa acessar as páginas desse front-end e
> recuperar alguns relatórios. Aí vocês me perguntam 'Por que você não acessa
> via Banco de dados? Bom, basicamente não consigo descobrir alguns detalhes
> sobre como o sistema ordena alguns dados, o que me gera vários problemas com
> os relatórios que eu preciso entregar, aí achei que o melhor caminho seria
> usar o relatório que já existe no front-end e filtrar apenas o necessário,
> sem alterar a ordem de nada.
> - O problema é que alguns relatórios são muito grandes, o que não impede o
> front-end gerar o arquivo e disponibilizar o link. Isso, a princípio, é
> feito on-demand, ou seja, tem um botão onde se clica para disparar uma
> requisição que faz com que essa app Ruby gere esses relatórios. E a
> requisição via browser não morre até o relatório ser gerado, não importando
> o tamanho desse relatório e/ou quanto demore. O grande problema é que eu não
> sei porque, quando eu faço essa requisição via Perl(WWW::Mechanize, LWP,
> WWW::Curl etc.) a requisição 'morre', e gera só um pedaço do arquivo.
>
> Algum código:
> <code>
> my $m = WWW::Mechanize->new(autocheck => 1,
> cookie_jar => HTTP::Cookies->new( file =>
> "$ENV{HOME}/.cookies.txt" ) ,
> );
>
> $m->get('http://whatever.com');
> if(!$m->succes){
> #erro
> }
> else{
> #ok, o arquivo foi gerado processe-o!
>
> }
> </code>
>
> É isso! Alguma idéia? Tá faltando informação?
>
>
>
> Cheers!
>
> --
> André Garcia Carneiro
> Software Engineer
> (11)982907780
>
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
--
-dom
--
IBM - Business Analytics Optimization Consultant
Daniel Mantovani +5511 8538-9897
XOXO
More information about the SaoPaulo-pm
mailing list