[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