Devo eseguire alcune richieste di feed XML simultanee in Perl. Qual è il modo più veloce per fare questo ?Qual è il modo più veloce per creare richieste Web simultanee in Perl?
risposta
Io probabilmente usare AnyEvent, forse in questo modo:
use AnyEvent;
use AnyEvent::HTTP;
sub get_feeds {
my @feeds = @_;
my $done = AnyEvent->condvar;
my %results;
$done->begin(sub { $done->send(\%results) });
for my $feed (@feeds){
$done->begin;
http_get $feed, sub { $results{$feed} = \@_; $done->end };
}
$done->end;
return $done;
}
my $done = get_feeds(...);
my $result = $done->recv; # block until all feeds are fetched
Il collegamento a AnyEvent :: HTTP è http://search.cpan.org/~mlehmann/AnyEvent-HTTP/. – gpojd
ho usato LWP::Parallel::UserAgent per qualcosa di simile. Un esempio dal POD:
require LWP::Parallel::UserAgent;
$ua = LWP::Parallel::UserAgent->new();
...
$ua->redirect (0); # prevents automatic following of redirects
$ua->max_hosts(5); # sets maximum number of locations accessed in parallel
$ua->max_req (5); # sets maximum number of parallel requests per host
...
$ua->register ($request); # or
$ua->register ($request, '/tmp/sss'); # or
$ua->register ($request, \&callback, 4096);
...
$ua->wait ($timeout);
...
sub callback { my($data, $response, $protocol) = @_; .... }
LWP :: Parallel non supera i test al momento, però. –
Penso che non sia più mantenuto. Ho spostato tutto il mio lavoro per utilizzare AnyEvent :: HTTP. – gpojd
HTTP::Async è abbastanza veloce e molto facile da codice.
In modo cruciale, restituisce oggetti HTTP :: Response, in modo da poterlo inserire in modo quasi indolore al posto di LWP. –
In realtà, AnyEvent::Curl::Multi è una libreria non bloccante costruita su libcurl. Molto veloce e tonnellate di concorrenza disponibili. Molto più potente di AnyEvent :: HTTP, IMO.
- 1. Qual è il modo più semplice per effettuare più richieste Web di seguito?
- 2. Il modo più veloce per rendere il sito web reattivo?
- 3. Qual è il modo più veloce per creare associazioni di massa HABTM in Rails?
- 4. Il modo più veloce ed efficiente per creare XML
- 5. Il modo più veloce per creare file in C#
- 6. Qual è il modo più veloce per creare l'unione di molti boost :: poligoni?
- 7. Richieste simultanee CasperJS
- 8. server http python, più richieste simultanee
- 9. Qual è il modo più semplice per creare un sito web per la prenotazione degli appuntamenti?
- 10. Qual è il modo più efficiente per creare ListBuffer vuoto?
- 11. Il modo più veloce per creare gif animate da mp4
- 12. Qual è il modo più veloce per ottenere più copie di un albero in python?
- 13. Qual è il modo più efficiente/più veloce per scorrere le righe in VBA (excel)?
- 14. WCF - qual è il legame più veloce?
- 15. Esiste un modo più semplice per creare il pacchetto perl
- 16. Qual è il modo migliore e più veloce per verificare se l'immagine è valida in PHP?
- 17. Qual è il modo più veloce per cercare un elenco <T> su più proprietà?
- 18. Qual è il modo più veloce per leggere il file da 10 GB dal disco?
- 19. jQuery: effettuare richieste ajax simultanee, è possibile?
- 20. È questo il modo più veloce per raggruppare in Panda?
- 21. Qual è il modo più veloce per cercare tra le stringhe in Objective-C?
- 22. Qual è il modo più veloce per calcolare la distribuzione di frequenza per array in C#?
- 23. Qual è il modo più veloce per confrontare due oggetti in PHP?
- 24. Python XMLRPC con richieste simultanee
- 25. Qual è il modo più veloce per ottenere l'output CSV in un frame di dati?
- 26. Qual è il modo più veloce per ottenere un DataTable in SQL Server?
- 27. Qual è il modo più veloce per scorrere i singoli caratteri in una stringa in C#?
- 28. Come si usa cURL per eseguire più richieste simultanee?
- 29. PHP: Qual è il più veloce SOAP, file_get_contents o Curl?
- 30. Qual è il modo più veloce per confrontare circa 700.000 righe da 2 diversi database usando Perl?
Vuoi dire più veloce come in: una soluzione che sarà più veloce da implementare, o una soluzione che sarà più veloce una volta implementata? – Marcus