17 lines
867 B
Text
17 lines
867 B
Text
|
Although using the conventional LWP::UserAgent is fast and easy it
|
||
|
does have some drawbacks - the code execution blocks until the
|
||
|
request has been completed and it is only possible to process one
|
||
|
request at a time. HTTP::Async attempts to address these limitations.
|
||
|
|
||
|
It gives you a 'Async' object that you can add requests to, and
|
||
|
then get the requests off as they finish. The actual sending and
|
||
|
receiving of the requests is abstracted. As soon as you add a
|
||
|
request it is transmitted, if there are too many requests in progress
|
||
|
at the moment they are queued. There is no concept of starting or
|
||
|
stopping - it runs continuously.
|
||
|
|
||
|
Whilst it is waiting to receive data it returns control to the code
|
||
|
that called it meaning that you can carry out processing whilst
|
||
|
fetching data from the network. All without forking or threading
|
||
|
- it is actually done using select lists.
|