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
|
#Thread qui sera créé.
sub thr_sw {
my @Parametres = @_;
#$dbh_tel = $Parametres[0];
$ip = $Parametres[0];
$nom_switch= $Parametres[1];
my $dbh_tel_cp = $Parametres[2];
... tout le code de traitement (ce n'est pas plus qui pose problème).
... et ensuite les requêtes mysql pour ajouter des infos à la BD
$stmt = "replace into `telephones` (`MAC`,`NUM_TEL`,`NOM`,`IP_TEL`,`ETAT`,`SWITCH`,`INTERFACE`,`DATE_MAJ`) values ('$mac','$numero','$nom_user','$iptel','$state','$nom_switch','$interf','$now');";
$sth_tel = $dbh_tel_cp->query($stmt);
}
#main qui appelle le thread : on a créé avant la connexion à la BD
#Connexion à la base de donnée téléphonies (une seule connexion donc une seule structure).
$host="localhost";
$database="telephonie";
$user="xxxx";
$password="yyyy";
my $dbh_tel = Mysql->connect($host, $database, $user, $password);
#on crée tous les threads en voulant leur passer l'objet mysql
for(my $ii=0; $ii<$nblines; $ii++) {
$xx = 1;
@arr = $sth->fetchrow;
$ip = $arr[0];
$nom_switch = $arr[1];
#my $dbh_tel_copy = clone($dbh_tel); -----------------------> J'ai tenté le clone ... mais ça va pas
$thr[$i] = threads->new(\&thr_sw, $ip,$nom_switch,$dbh_tel); #je veux passer la structure de connexion mysql
}
#Attente que tous les threads se finissent correctement.
for(my $ii=0; $ii<$nblines; $ii++) {
$thr[$i]->join;
} |
Partager