AnyEvent-Net-Curl-Queued
view release on metacpan or search on metacpan
lib/AnyEvent/Net/Curl/Queued.pm view on Meta::CPAN
=head2 common_opts
L<AnyEvent::Net::Curl::Queued::Easy/opts> attribute common to all workers initialized under the same queue.
You may define C<User-Agent> string here.
=head2 http_response
Encapsulate the response with L<HTTP::Response> (only when the scheme is HTTP/HTTPS); a global version of L<AnyEvent::Net::Curl::Queued::Easy/http_response>.
Default: disabled.
=head2 completed
Count completed requests.
=head2 cv
L<AnyEvent> condition variable.
Initialized automatically, unless you specify your own.
Also reset automatically after L</wait>, so keep your own reference if you really need it!
=head2 max
Maximum number of parallel connections (default: 4; minimum value: 1).
=head2 multi
L<Net::Curl::Multi> instance.
=head2 queue
C<ArrayRef> to the queue.
Has the following helper methods:
=head2 queue_push
Append item at the end of the queue.
=head2 queue_unshift
Prepend item at the top of the queue.
=head2 dequeue
Shift item from the top of the queue.
=head2 count
Number of items in queue.
=head2 share
L<Net::Curl::Share> instance.
=head2 stats
L<AnyEvent::Net::Curl::Queued::Stats> instance.
=head2 timeout
Timeout (default: 60 seconds).
=head2 unique
Signature cache.
=head2 watchdog
The last resort against the non-deterministic chaos of evil lurking sockets.
=head1 METHODS
=head2 inc_completed
Increment the L</completed> counter.
=head2 start()
Populate empty request slots with workers from the queue.
=head2 empty()
Check if there are active requests or requests in queue.
=head2 add($worker)
Activate a worker.
=head2 append($worker)
Put the worker (instance of L<AnyEvent::Net::Curl::Queued::Easy>) at the end of the queue.
For lazy initialization, wrap the worker in a C<sub { ... }>, the same way you do with the L<Moo> C<default =E<gt> sub { ... }>:
$queue->append(sub {
AnyEvent::Net::Curl::Queued::Easy->new({ initial_url => 'http://.../' })
});
=head2 prepend($worker)
Put the worker (instance of L<AnyEvent::Net::Curl::Queued::Easy>) at the beginning of the queue.
For lazy initialization, wrap the worker in a C<sub { ... }>, the same way you do with the L<Moo> C<default =E<gt> sub { ... }>:
$queue->prepend(sub {
AnyEvent::Net::Curl::Queued::Easy->new({ initial_url => 'http://.../' })
});
=head2 wait()
Process queue.
=for Pod::Coverage BUILD
BUILDARGS
has_watchdog
=head1 CAVEAT
=over 4
=item *
Many sources suggest to compile L<libcurl|http://curl.haxx.se/> with L<c-ares|http://c-ares.haxx.se/> support. This only improves performance if you are supposed to do many DNS resolutions (e.g. access many hosts). If you are fetching many documents ...
( run in 0.349 second using v1.01-cache-2.11-cpan-ec4f86ec37b )