0

複数のアウトバウンドIPアドレスを使用するPerlコードがthreadsあります>>HTTP::Async

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にはデバッグメカニズムが組み込まれているようには見えませんが、そのモジュールに「debug」フラグを追加し、それが何であるかを確認するためのヘルプが必要な場合は、適切な場所にいくつかの警告ステートメントを追加するのは比較的簡単です。やっています。HTTP::Asyncを使用する独自のコードにデバッグコードを追加することもできます。

于 2012-04-05T22:34:15.073 に答える