Parallel-Downloader
view release on metacpan or search on metacpan
lib/Parallel/Downloader.pm view on Meta::CPAN
#
# Works under CC0 do not require attribution. When citing the work, you should
# not imply endorsement by the author.
#
use Moo;
use MooX::Types::MooseLike::Base qw( Bool Int HashRef CodeRef ArrayRef );
sub {
has requests => ( is => 'ro', isa => ArrayRef, required => 1 );
has workers => ( is => 'ro', isa => Int, default => sub { 10 } );
has conns_per_host => ( is => 'ro', isa => Int, default => sub { 4 } );
has aehttp_args => ( is => 'ro', isa => HashRef, default => sub { {} } );
has debug => ( is => 'ro', isa => Bool, default => sub { 0 } );
has logger => ( is => 'ro', isa => CodeRef, default => sub { \&_default_log } );
has build_response => ( is => 'ro', isa => CodeRef, default => sub { \&_default_build_response } );
has sorted => ( is => 'ro', isa => Bool, default => sub { 1 } );
has _consumables => ( is => 'lazy', isa => ArrayRef, builder => '_requests_interleaved_by_host' );
has _responses => ( is => 'ro', isa => ArrayRef, default => sub { [] } );
has _cv => ( is => 'ro', isa => sub { $_[0]->isa( 'AnyEvent::CondVar' ) }, default => sub { AnyEvent->condvar } );
}
->();
use AnyEvent::HTTP;
use Sub::Exporter::Simple 'async_download';
sub async_download {
return __PACKAGE__->new( @_ )->run;
( run in 0.735 second using v1.01-cache-2.11-cpan-5f2e87ce722 )