Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Проблема с ограничением по времени


Автор: Usya 7.6.2005, 21:12
У меня проблема

Не могу понять, почему не работает ограничение по времени
Код

my $au = LWP::UserAgent->new(timeout=>30);
my $doc=$au->request(HTTP::Request->new(GET=>$urll));

Насколько я понял, если время превышает 30 сек, то должен последовать выход из запроса. А такого не происходит. Кроме того, по умолчанию стоит 180 сек. Но это ограничение кажется тоже не действует.

И еще один вопрос: как можно контролировать время выполнения скрипта?
В частности, если возникнут какие-нибудь проблемы во время выполнения разработанного скрипта, чтобы он сам завершил работу по истечении определенного времени, например 30 сек. При этом при экстренном выходе, если возможно, выполнялась бы некоторая процедура (например, сохранение данных).

Заранее благодарен за любой совет.

Автор: Sadok 8.6.2005, 11:19
А так?
Код

use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->timeout(30) #кстати, может тут в кавычках надо, как ниже в строке?
$req = HTTP::Request->new(GET => 'http://www.linpro.no/lwp');
$res = $ua->request($req);
if ($res->is_success) {
print $res->content;
} else {
print "Error: " . $res->status_line . "\n";
}

По второму вопросу смотреть в сторону alarm. Где-то рядом уже обсуждалось.
А.. вот http://www.perl.org.ru/cgi-bin/forum/UltraBoard.cgi?action=Read&BID=1&TID=7049&SID=25

Автор: Usya 8.6.2005, 21:37
На счет alarm - большое спасибо, помогла лекарочка smile

А на счет кода - это скорее всего тоже самое, я поначалу это вариант и пробовал, потом тот, который сам привел... Проблема еще в том, как проверить работоспособность??? Единственное по чем я могу судить-это по глюкам в логфайле (слишком большое время выполнения скрипта).

В добавок ко всему наткнулся еще на одну проблему из тойже серии. По ходу дела head($url) из LWP::Simple тоже может хорошо притормаживать.

Все нюансы и причины сомнений по поводу timeout() описать не могу, надо еще самому повозиться. Может зря наговариваю. Проблема еще в том как обкатать код. Как отловить глюк на чужом сервере в течении дня либо самому у себя его создать? В добавок ко всему, не хочется испытывать терпение ребят из отдела хостинга.

Попробую подстраховаться alarm-ом, чтоб время не зашкаливало. Посмотрим smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)