0

threads我有一个使用HTTP::Async多个出站 IP 地址的 Perl 代码 >>

use threads ( 'yield',
              'exit' => 'threads_only',
              'stack_size' => 2*16384 );
use strict;
use warnings;
 no warnings 'threads';
use threads::shared;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Async;
...
my $async = HTTP::Async->new( ... );
...
foreach (@list) {
  $thread = threads->create( sub {
    local $SIG{KILL} = sub { threads->exit };
    ...
    $ua->local_address($ip);
    $request->url($url);
    $async->add($request);
    while ($response = $async->wait_for_next_response) {
      ...
    }
  }, $_);
}
...

我需要生成一些包含url出站 IP信息的基本应用程序日志。

如何记录HTTP::Async通信?

4

1 回答 1

2

您实际上并没有在该代码中使用LWP,您只是在加载它。同样,从您的代码示例中也不清楚为什么要使用线程。HTTP::Async 负责“一次”执行多个 HTTP 请求。

它看起来不像HTTP::Async有任何内置的调试机制,但是如果您需要帮助查看它是什么,在该模块中添加一个“调试”标志并在适当的位置添加一些警告语句会相对简单正在做。您还可以在自己的使用 HTTP::Async 的代码中添加调试代码。

于 2012-04-05T22:34:15.073 回答