Here is a complete working example you can run:
#!/usr/bin/env perl
use Mojolicious::Lite;
get '/random-urls' => sub {
my $c = shift;
$c->render_later;
$c->delay(
sub { ## first step
my $delay = shift;
$c->ua->get('https://www.random.org/bytes/',
$delay->begin);
$c->ua->get('https://www.random.org/integer-sets/',
$delay->begin);
$c->ua->get('https://www.random.org/strings/',
$delay->begin);
$c->ua->get('https://www.random.org/audio-noise/',
$delay->begin);
},
sub { ## second step
my $delay = shift;
for my $dom (map { $_->res->dom } @_) {
say STDERR $dom->at('title')->text;
}
$c->render(text => "Got all the links");
}
);
};
app->start;
When the results finally all come back from the first step, the second step
will print out the page titles to STDERR, and return to the client "Got all
the links".
Scott
On Saturday, November 12, 2016 at 2:47:57 AM UTC-7, Alex Povolotsky wrote:
>
> Hello
>
> Examples of Mojo::UserAgent are limited to fetching a set of files.
>
> But I need a bit more complex thing: I need to parse a site, reading
> pages, parsing it and reading links, using non-blocking UA with, say, 4
> downloads at a time, no more and if possible no less.
>
> Can someone give me a good example?
>
> Alex
>
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.