Necesito hacer algunas solicitudes simultáneas de feed XML en Perl. ¿Cuál es la forma más fácil de hacer esto?¿Cuál es la forma más rápida de hacer solicitudes web concurrentes en Perl?
Respuesta
utilizaría probablemente AnyEvent, tal como esto:
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
El enlace a AnyEvent :: HTTP es http://search.cpan.org/~mlehmann/AnyEvent-HTTP/. – gpojd
que utilizan LWP::Parallel::UserAgent por algo similar. Un ejemplo de la vaina:
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 falla sus pruebas en este momento, sin embargo. –
Creo que ya no se mantiene. Moví todo mi trabajo para utilizar AnyEvent :: HTTP. – gpojd
HTTP::Async es bastante rápido y muy fácil de código.
Fundamentalmente, devuelve los objetos HTTP :: Response, por lo que puede ubicarlo casi sin problemas en lugar de LWP. –
En realidad, AnyEvent::Curl::Multi es una biblioteca sin bloqueo construida sobre libcurl. Muy rápido y toneladas de concurrencia disponibles. Mucho más poderoso que AnyEvent :: HTTP, IMO.
- 1. ¿Cuál es la forma más fácil de hacer varias solicitudes web seguidas?
- 2. ¿Cuál es la forma más rápida de grabar varios archivos?
- 3. ¿Cuál es la forma más rápida de eliminar páginas web HTML en Android?
- 4. ¿Cuál es la solución de servidor web más rápida con la huella de memoria más baja?
- 5. La forma más rápida de hacer una resta de colección
- 6. ¿Cuál es la forma más fácil o más rápida de hacer que CSS represente lo mismo en todos los navegadores?
- 7. ¿La forma más rápida de hacer sombras en iOS?
- 8. ¿Cuál es el rendimiento de la http.request de Node.js? ¿Cuántas solicitudes concurrentes puede manejar?
- 9. Solicitudes concurrentes en Appengine Python
- 10. ¿Es Perl la forma más rápida de escribir una página de alto rendimiento?
- 11. ¿Cuál es la forma más rápida de obtener CRUD sobre CGI en un identificador de base de datos en Perl?
- 12. ¿La forma más rápida de hacer que el sitio web sea receptivo?
- 13. ¿Cuál es la forma más rápida de dibujar texto formateado en la API de Win32?
- 14. ¿Cuál es la forma más rápida de comparar alrededor de 700,000 filas de 2 bases de datos diferentes usando Perl?
- 15. ¿Cuál es la forma más rápida de saltar a un constructor (es) en una clase?
- 16. La forma más rápida de completar ArrayList
- 17. La forma más rápida de aprender Maven
- 18. ¿Cuál es la forma más rápida de leer el registro de eventos en la máquina remota?
- 19. Cuál es la forma más rápida de importar registros de 60m en SQL
- 20. ¿Cuál es la forma más rápida de crear un blog simple?
- 21. En Java, ¿cuál es la forma más rápida de obtener la hora del sistema?
- 22. En ASP.NET, ¿cuál es la forma más rápida de obtener la URL base para una solicitud?
- 23. ¿Cuál es la forma más rápida de crear asociaciones masivas de HABTM en Rails?
- 24. Linq: ¿Cuál es la forma más rápida de averiguar la ejecución diferida o no?
- 25. ¿Cuál es la forma más rápida de detectar un host inalcanzable en Java?
- 26. ¿cuál es la forma más rápida de escanear un archivo muy grande en Java?
- 27. MongoDB: ¿Cuál es la forma más rápida de actualizar todos los registros en una colección?
- 28. ¿Cuál es la forma más rápida de buscar cadenas en Objective-C?
- 29. ¿Cuál es la forma más rápida de obtener copias múltiples de un árbol en python?
- 30. ¿Cuál es la forma más rápida de dibujar una imagen en Gtk +?
¿Quiere decir más rápido que en: una solución que será más rápida de implementar o una solución que será más rápida una vez implementada? – Marcus