There's no limit on how many connections Mojo::UserAgent can make, so you have to restrict that yourself. Something like this might work:
my $mainarray = []; my $ua = Mojo::UserAgent->new; my $gather; $gather = sub { my ($ua, $tx) = @_; my $graphname = "whatever"; $tx->res->content->asset->move_to($graphname); return $ua->emit('completely_done') unless @$mainarray; return $ua->get(shift(@$mainarray)->{graphURL}, $gather); }; $ua->on(completely_done => sub { Mojo::IOLoop->stop }); for (1..40) { my $mhash = shift @$mainarray or last; $ua->get($mhash->{graphURL}, $gather); } Mojo::IOLoop->start; On Thursday, March 10, 2016 at 12:00:58 AM UTC+1, Юрий Корик wrote: > > Hello guys. > > I've wrote script like this to get about 2000 charts from Graphite: > > > use Mojo::UserAgent; > use Mojo::IOLoop; > > my $ua = Mojo::UserAgent->new; > > foreach my $mhash (@{$mainarray}) { > $ua->get($mhash->{graphURL} => sub { > my ($ua, $tx) = @_; > $tx->res->content->asset->move_to($graphname); > }); > } > > Mojo::IOLoop->start unless Mojo::IOLoop->is_running; > > 1; > > How can I restrict Mojo::UserAgent to create only 40 concurrent connection > to remote server? > > With best regards, Yuriy. > -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to mojolicious+unsubscr...@googlegroups.com. To post to this group, send email to mojolicious@googlegroups.com. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.