Re: timeout

"Octavian Rasnita" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.lwp
Message-ID <001c01c703d6$023a0530$9f65fea9@ted>
Hi,

I have also tried your suggestion using alarm() but as I thought, it doesn't
seem to work. Have you tried it under Windows? As far as I know alarm()
doesn't work under Windows.

But you gave me an idea to try using a Windows Timer event. I will see if it
works that way.

Teddy

----- Original Message ----- 
From: "Chris Boyce" <[email protected]>
To: "Octavian Rasnita" <[email protected]>
Cc: "Ted Behling" <[email protected]>; <[email protected]>
Sent: Thursday, November 09, 2006 12:22 AM
Subject: Re: timeout


> This is not so much a solution, as it is an alternative to the LWP
> timeout...
>
> I've had good luck just using an eval block around the request, and then
> making a simple signal catcher to do something if the alarm times out:
>
> use LWP::UserAgent;
> use HTTP::Cookies;
> use HTTP::Headers;
> use HTTP::Request;
> use HTTP::Response;
>
> $SIG{ALRM} = sub { die "timeout\n"; };
>
> $timeout=5;
>
> eval {
>   # Set the alarm clock for timeout seconds
>   alarm($timeout);
>
>   # Run the request...
>   $http_response = $agent->request($request);
>
>   # If we're here, then the request didn't get zapped by the alarm...
>   # reset the alarm to nada.
>   alarm(0);
> };
>
> The word "timeout" will appear in the response if the alarm goes off.
> Sorry if this is crude, but it works great.
>
>
> -Chris
>
>
> On Thu, 2006-11-09 at 00:09 +0200, Octavian Rasnita wrote:
> > Hi,
> >
> > I've also tried without that "-" before "timeout", but it doesn't work.
I
> > have also tried with $ua->timeout(5), but it doesn't work either.
> >
> > Here is the test script and its result:
> >
> > use strict;
> > use LWP::UserAgent;
> >
> > my $begin = time();
> >
> > my $ua = LWP::UserAgent->new();
> > $ua->timeout(5);
> >
> > print $ua->get("http://www.presaromana.ro/")->content;
> >
> > print time() - $begin;
> >
> > And the result is:
> > 500 Can't connect to www.presaromana.ro:80 (connect: Unknown error)
> > 23
> >
> > So it takes 23 seconds instead of timing out after 5.
> >
> > Is it a bug in LWP, or a limitation of Windows, or I am doing something
> > wrong?
> >
> > Thank you.
> >
> > Teddy
> >
> > ----- Original Message ----- 
> > From: "Ted Behling" <[email protected]>
> > To: "Octavian Rasnita" <[email protected]>; <[email protected]>
> > Sent: Wednesday, November 08, 2006 8:22 PM
> > Subject: RE: timeout
> >
> >
> > True.  Or, Octavian, just leave out the hyphen from your timeout
> > parameter, as in:
> >
> > my $ua = LWP::UserAgent->new(timeout => 5);
> >
> > Ted Behling
> > ISP Systems Analyst, Hargray Communications
> > [email protected]
> >
> > -----Original Message-----
> > From: Eamon Daly [mailto:[email protected]]
> > Sent: Wednesday, November 08, 2006 10:36 AM
> > To: [email protected]
> > Cc: Octavian Rasnita
> > Subject: Re: timeout
> >
> > From the LWP::UserAgent perldoc at
> >
> > http://search.cpan.org/~gaas/libwww-perl-5.805/lib/LWP/UserAgent.pm
> >
> >   $ua->timeout( $secs )
> >     Get/set the timeout value in seconds. The default timeout() value is
> > 180 seconds, i.e. 3 minutes.
> >
> > So in your first example, it should be:
> >
> >   use strict;
> >   use LWP::UserAgent;
> >
> >   my $ua = LWP::UserAgent->new;
> >   $ua->timeout(5);
> >
> >   print $ua->get("http://www.presaromana.ro/")->content;
> >
> > ____________________________________________________________
> > Eamon Daly
> >
> >
> >
> > ----- Original Message -----
> > From: "Octavian Rasnita" <[email protected]>
> > To: <[email protected]>
> > Sent: Wednesday, November 08, 2006 8:37 AM
> > Subject: timeout
> >
> >
> > : Hi,
> > :
> > : I am trying to create a very simple www client that times out after 5
> > : seconds. I have tried the 2 examples below, but none of them are
> > working.
> > : They don't time out even though the target site cannot be found.
> > : I think they time out after some more time.
> > :
> > : I have ran them under Windows 2000 with ActivePerl 5.8.8.
> > : Is it possible to do what I want?
> > :
> > : Thanks.
> > :
> > : use strict;
> > : use LWP::UserAgent;
> > :
> > : my $ua = LWP::UserAgent->new(-timeout => 5);
> > :
> > : print $ua->get("http://www.presaromana.ro/")->content;
> > :
> > : __END__
> > :
> > : my $req = HTTP::Request->new("GET", "http://www.presaromana.ro/");
> > : my $res = $ua->request($req);
> > :
> > : print $res->content();
> > :
> > :
> > : Teddy
> > :
> >
> >
> >
> -- 
> Chris Boyce
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.