Forum Webscript.Ru

Программирование => Perl => Тема начата: Elenka от 07 Апреля 2005, 17:28:28

Название: Мультипроцессовый LWP
Отправлено: 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
Отправлено: 2NetFly от 07 Апреля 2005, 18:31:29
LWP::Parallel
Название: Мультипроцессовый LWP
Отправлено: Elenka от 07 Апреля 2005, 20:09:18
а чем отличается заупск по LWP::Parallel и пустить скрипт в несколько потоков?

Я просто по LWP::Parallel запускаю, допустим 10 одновременно, очень долго висит, все равно что по порядку вызывать 10 раз.
Название: Мультипроцессовый LWP
Отправлено: _apple_ от 08 Апреля 2005, 01:11:11
там есть узкое место системный коннект, я вообще не понимаю, что это за параллельный процесс, который не создает свои экземпляры.

я проверял на 3.500 хостах. Перл начинает разочаровывать!
Название: Мультипроцессовый LWP
Отправлено: 2NetFly от 08 Апреля 2005, 09:34:28
_apple_, есть такая штука хитрая, называется select.

У меня был скрипт на перле - префорк, однонаправленный канал и sysv IPC. На 90 процессах делал 3к запросов. Если не устраивают такие скорости - пиши на Си.
Название: Мультипроцессовый LWP
Отправлено: _apple_ от 08 Апреля 2005, 17:53:35
хммм, а что за запросы? запросы запросам рознь.  Если можно покажите кусочек кода. может и хост один был?

Знаете историю про секретаршу, которая делала 3000 знаков в минуту?
Название: Мультипроцессовый LWP
Отправлено: 2NetFly от 08 Апреля 2005, 22:03:14
Странный какой-то вопрос. Я понимаю, если бы спросили про ширину канала, используемую ОС, количество оперативной памяти, позволяющее создать 90 процессов. А на вопрос "а что за запросы" ответ простой: "обычные get / post запросы".

Кстати, какая разница, запросы на один сервер или на разные? ;=)
Название: Мультипроцессовый LWP
Отправлено: Slike от 09 Апреля 2005, 00:25:00
так сколько оперативы и какой канал ?
у меня на сервере 1Гиг и 100мбит, хватит ?
Название: Мультипроцессовый LWP
Отправлено: Slike от 09 Апреля 2005, 00:26:45
ну и можно на примерчик глянуть ?

спасибо ;)
Название: Мультипроцессовый LWP
Отправлено: 2NetFly от 09 Апреля 2005, 09:26:54
Читаем про prefork, каналы и sysV IPC =)
Название: Мультипроцессовый LWP
Отправлено: Lastiik от 28 Апреля 2005, 01:15:38
какой сервер под эти цели посоветуете?
-канал
-рам