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


Автор: noneg 29.3.2011, 11:15

Вот для наглядности код..вообщем мне надо что бы скрипт посылал запросы на сайт  
я плохо разбераюсь в многопоточности, через такую реализацию..в итоге получается..что он сначало много запросов делает на первый сайт 10-15 а потом уже пару на второй, до 3 сайта запросы вообще помоему не доходят..А если скрипт разбить ...т.е создать 3 отдельных файла (а не вместе все как тут) то нормально работает..каждый шлет как надо...но меня это не устраивает..наверняка как-то можно все в одном реализовать...(или многопоточность как-то подругому лучше сделать)

Код

#!/usr/bin/perl

use strict;
use LWP::UserAgent;
use HTTP::Cookies;
use threads;
use threads::shared;
 
my $threads = 50 ;                                 
my @trl = ();
 
$trl[$_] = threads->create(\&start) for 0..$threads - 1;
$_->join for @trl;
 
sub start
{

 my $ua = LWP::UserAgent->new(timeout => 35,
                                 cookie_jar => new HTTP::Cookies);

 $ua->agent('Windows');

 push @{ $ua->requests_redirectable }, 'POST';
  
while(1) {

my $resp = $ua->post("http://site.ru",
[
"s" =>  "y",
"sub" => "x",
"subs" => "z",
"vis" => "w",])->as_string;

my $too = $ua->post("http://site.com",
[
"s" =>  "1",
"sub" => "2",
"subs" => "3",
"vis" => "4",])->as_string;

my $free = $ua->post("http://site.biz",
[
"s" =>  j",
"sub" => "k",
"subs" => "l",
"vis" => "w",])->as_string;

}


Автор: arto 29.3.2011, 14:29
POE, AnyEvent, IO::Lambda, EV, Coro, IO::Multiplex etc.

Автор: noneg 29.3.2011, 18:39
а пример с мои кодом можно?))

Автор: Pfailed 29.3.2011, 18:50
Если с тредами разобрались, то смотрите модуль Coro. Его использование очень похоже на использование модуля threads.

Автор: arto 29.3.2011, 23:29
50€/hour

Автор: DurRandir 31.3.2011, 13:32
Поиск по форуму помогает. Этот вопрос возникает с переодичностью раз в три месяца)

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