什么是目前最舒适,最可靠的跨平台Perl模块进行并行下载?

前端之家收集整理的这篇文章主要介绍了什么是目前最舒适,最可靠的跨平台Perl模块进行并行下载?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将不得不通过简单地在URL上发布并获取 XML作为回报来下载大量数据集.我可以通过一次执行多个请求来加快速度,但这里是钩子:

它需要在WindowsLinux上运行,因此线程和分叉都会出局. (因为这纯粹是IO限制的,所以我认为它们也不需要.)

此外,我的同事并不是非常高级的perl理解,但需要能够掌握如何使用它(不一定是正在发生的事情,使用情况很好).因此,如果它的API有点简单,我会很高兴.

现在我正在寻找IO::Lambda.

还有其他建议吗?

Post-Mortem:根据draegtun的建议,我现在把它拼凑在一起,完美地完成了这项工作:https://gist.github.com/661386你很快就会在CPAN上看到它.

解决方法

看看 AnyEvent::HTTP.根据 CPAN testers platform matrix它确实编译和&在Windows上工作.

下面是异步POSTing(http_post)的简单示例.

use 5.012;
use warnings;
use AnyEvent::HTTP;

my $cv = AnyEvent->condvar;

my @urls = (
    [google => 'http://google.com','some body'],[yahoo  => 'http://yahoo.com','any body' ],);

for my $site (@urls) {
    my ($name,$url,$body) = @$site;
    $cv->begin; 
    http_post $url,$body => sub {
        my $xml = shift;
        do_something_with_this( $name,$xml );
        $cv->end;
    }
}

# wait till all finished
$cv->recv;
say "Finished";

sub do_something_with_this { say @_ }

NB.记住你用do_something_with_t所做的决定,试着避免任何阻塞.见其他非阻塞AnyEvent modules

/ I3az /

猜你在找的Perl相关文章