[Madrid-pm] perl threads
Joaquín Ferrero
explorer en joaquinferrero.com
Mie Oct 13 14:22:45 PDT 2010
El 13/10/10 23:03, mipassa escribió:
> Cierto todo lo que dices. Pero mi problema podría tratar por ejemplo de
> sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y
> demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar
> esos tiempos muertos con algo/thread ocioso y que no haya que estar creando
> continuamente costosos hijos/forks/procesos
>
> Thanks again por vuestras sabias opiniones
>
Que casualidad, entonces, que es parecido al ejemplo que hay en la página de manual de Parallel::ForkManager :)
use LWP::Simple;
use Parallel::ForkManager;
#...
@links=(
["http://www.foo.bar/rulez.data","rulez_data.txt"],
["http://new.host/more_data.doc","more_data.doc"],
#...
);
#...
# Max 30 processes for parallel download
my $pm = new Parallel::ForkManager(30);
foreach my $linkarray (@links) {
$pm->start and next; # do the fork
my ($link,$fn) = @$linkarray;
warn "Cannot get $fn from $link"
if getstore($link,$fn) != RC_OK;
$pm->finish; # do the exit in the child process
}
$pm->wait_all_children;
--
JF^D
Más información sobre la lista de distribución Madrid-pm