Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10707[/thread]

LWP::ConnCache

Leser: 2


<< >> 1 Eintrag, 1 Seite
croak
 2007-11-02 14:05
#101689 #101689
User since
2007-11-02
1 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe eine frage bezüglich LWP::ConnCache um eine persistente Verbindung zu einem Webserver aufzubauen.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/perl -W

use strict;
use warnings qw(all);

use LWP::UserAgent qw(new);
use LWP::ConnCache;

use Date::Calc qw(Mktime Today Today_and_Now);

my $cache = LWP::ConnCache->new();

$| = 1;

# HTTP User Agent
my $browser = LWP::UserAgent->new;
$browser->default_headers->push_header('Accept-Encoding' => 'gzip, compressed, deflate');
$browser->timeout(15);
$browser->conn_cache($cache);

my $start = Mktime(Today_and_Now);

sub request{
my ($request, $response, $content);

# Request
$request = HTTP::Request->new(GET => 'http://board.perl-community.de');

# Request senden
$response = $browser->request($request);

# Gzipped on the fly ?
$content = $response->decoded_content;
$content = $response->content unless $content;

print ".";
}

my ($done, $round) = 0;
my $duration = 10;

while(!$done){
request();

$done = 1 if ((Mktime(Today_and_Now))-$start == $duration);
$round++;
}

$cache->drop();
print "\n$round requests in $duration seconds\n";


Wie man in der vorletzten zeile lesen kann versuche ich offene verbindungen zu trennen ... was aber leider nicht funktioniert ... die verbindung bleibt offen (netstat). Da das script teileweise 30 mal hintereinander aufgerufen wird hab ich am ende 30 wartende tcp verbindungen die erst nach x sekunden, je nach os, getrennt werden =(

Getestet hab ich auf Windows und Linux (Gentoo, Redhat, Fedora) immer mit dem selben ergebniss.

Also meine eigentliche frage ist entweder:

Wie trenne ich die verbindung zum webserver ?

ODER, was noch viel toller wäre XD:

wenn das script mehrere mal läuft, wie könnte ich wieder an den noch offenen socket zum webserver kommen ?!

Würde mich freuen wenn jmd eine idee hat woran es liegen könnte.

MFG
ste
<< >> 1 Eintrag, 1 Seite



View all threads created 2007-11-02 14:05.