| Код | #!/home/stan/bin/perl -w use strict; use HTTP::Async; use HTTP::Request;
my %args= ( 'slots'=>'20', 'timeout'=> '2', 'max_request_time'=> '5', 'max_redirects'=> '7', 'poll_interval'=> '0.05', 'proxy_host'=> '', 'proxy_port'=> '' );
my $async = HTTP::Async->new(%args); #
my @mass=( 'http://www.perl.org/', 'http://www.helsinki.fi/', 'http://www.rambler.ru/news/', );
my @req;
foreach my $ee (@mass) { my $const=HTTP::Request->new(GET=>$ee); push(@req, $const); }
$async->add(@req); # здесь модуль ждет почему-то, если я устновил 'timeout'=>'2'?
while ( $async->not_empty ) { if ( my $response = $async->next_response ) { # deal with $response print $response->as_string; } else { # do something else } }
|
Я устновил таймаут содинений 'timeout'=> '2' сек, почему при запуске [bash]./script прога ждет более 2 секунд(более 5 сек если смотреть на 'max_request_time'=>'5'), описание модуля http://search.cpan.org/~evdb/HTTP-Async-0....b/HTTP/Async.pm, вроде сделал как там написано, но такое ощущение что модуль сам знает сколько ждать, как исправить ? Короче модуль не приручается. Конечно в большинстве случаев, скрипт быстро скачивает ссылки, мне необходимо управлять, таймаутом, даже не смотря на то что это параллельные запросы без блокирования. А нужно мне чтобы если таймаут больше 2 сек, то просто рвал соединение. Потестируйте может у кого-нидь нормально работает. Это сообщение отредактировал(а) stan777 - 10.4.2007, 18:14
|