Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
sub metasearch { my $self = shift; my @dbs = @{$self->dbs}; my @resultset; foreach my $db (@dbs) { my $result = $db->do_query; push @resultset, $result; } return \@resultset; }
Now I would like the do the "foreach" part in parallel and don't know how.
I had it working fine in a stand alone test script with Parallel::ForkManager but that gave an error when run under mod_perl ("ModPerl::Util::exit: (120000) exit was called at /usr/local/share/perl/5.8.8/Parallel/ForkManager.pm line 306").
Then I read the threading tutorial and was more puzzled than before. Also in Google I couldn't find an example with iteration (I don't know in advance how many and which databases will be needed) and collection of the results. It would also be nice to have a timeout, just in case one of the databases is very slow or even dead.
Any ideas how to (best) do this?
Many thanks
|
|---|