簡體   English   中英

如何讓 LWP::UserAgent 緩存連接?

[英]How can I get LWP::UserAgent to cache connections?

在 perl 腳本中,我正在使用 LWP::UserAgent,如下所示:

my $ua = LWP::UserAgent->new( keep_alive => 10 );

在執行 $ua-get 幾千次以從https://example.com獲取 URL 之后,我希望 $ua->conn_cache 有十個打開的連接。 但是,如果我使用 Data::Dumper 並執行以下操作:

print Dumper( $ua->conn_cache );

我只看到一個連接:

$VAR1 = bless( {
                 'cc_limit_total' => 10,
                 'cc_conns' => [
                                 [
                                   bless( \*Symbol::GEN1, 'LWP::Protocol::https::Socket' ),
                                   'https',
                                   'example.com:443',
                                   1638549871
                                 ]
                               ]
               }, 'LWP::ConnCache' );

我做錯了什么,還是我只是誤解了 conn_cache 的轉儲向我展示的內容? 值得一提的是,我獲取的 URL 僅在查詢參數上有所不同。

處理對同一主機的許多連續請求的最有效方法是重用與該主機的單個持久 TCP 連接 - 這正是您所看到的。 如果對同一主機的請求是並行而不是順序發送的,或者如果請求被發送到多個主機,則需要更多的連接。

要檢查后者,只需向 example.com 和 example.org 發出請求 - 您最終會在連接緩存中得到兩個條目,一個是 example.com,一個是 example.org。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM