Forum Webscript.Ru
Программирование => Perl => Тема начата: Elenka от 07 Апреля 2005, 17:28:28
-
Допустим имеется...
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(1);
open(URLS, "urls.txt");
while(my $read = )
{
chop($read);
get($read);
}
close(URLS);
sub get(){
my $response = $ua->get($_[0]);
if ($response->is_success) {
return $response->content;
}
else {
return 0;
}
}
В общем читаем файл с URLами и берем каждый из них.
Вопрос: как запустить это дело в несколько процессов, выделив под это определенное кол-во памяти...? То есть в одно время будет GETиться несколько урлов сразу.
-
LWP::Parallel
-
а чем отличается заупск по LWP::Parallel и пустить скрипт в несколько потоков?
Я просто по LWP::Parallel запускаю, допустим 10 одновременно, очень долго висит, все равно что по порядку вызывать 10 раз.
-
там есть узкое место системный коннект, я вообще не понимаю, что это за параллельный процесс, который не создает свои экземпляры.
я проверял на 3.500 хостах. Перл начинает разочаровывать!
-
_apple_, есть такая штука хитрая, называется select.
У меня был скрипт на перле - префорк, однонаправленный канал и sysv IPC. На 90 процессах делал 3к запросов. Если не устраивают такие скорости - пиши на Си.
-
хммм, а что за запросы? запросы запросам рознь. Если можно покажите кусочек кода. может и хост один был?
Знаете историю про секретаршу, которая делала 3000 знаков в минуту?
-
Странный какой-то вопрос. Я понимаю, если бы спросили про ширину канала, используемую ОС, количество оперативной памяти, позволяющее создать 90 процессов. А на вопрос "а что за запросы" ответ простой: "обычные get / post запросы".
Кстати, какая разница, запросы на один сервер или на разные? ;=)
-
так сколько оперативы и какой канал ?
у меня на сервере 1Гиг и 100мбит, хватит ?
-
ну и можно на примерчик глянуть ?
спасибо ;)
-
Читаем про prefork, каналы и sysV IPC =)
-
какой сервер под эти цели посоветуете?
-канал
-рам