Amélioration d'un script pour le rendre plus performant
#14
tcl
proc ::checkpays::monitoring {nick username ip vhost codepays reputation sslco webirc websocket realname asn asname} {
	::checkpays::service:connect
	set query "CALL `NEW_CONNECTION`('$nick', '$username', '[mysqlescape [encoding convertto utf-8 $realname]]', '$codepays', '$ip', '$vhost', '$webirc', '$websocket', '$sslco');"
	set res [::mysql::exec $::mysqlink $query]
	::checkpays::service:deconnect
}
 
proc ::checkpays::CountIRC {ip username codepays webirc websocket} {
	set now [strftime "%Y-%m-%d"]
	set queryverif "SELECT ip,seen FROM compteur WHERE ip='$ip' AND seen='$now'"
 
	::checkpays::service:connect
	set res [::mysql::sel $::mysqlink $queryverif]
 
	if {[lindex $res 0] == 1} {
			set query "UPDATE compteur SET itr=itr+1 WHERE ip='$ip' AND seen='$now'"
	} else {
			set query "INSERT INTO compteur (ip, username, codepays, webirc, websocket, seen, itr) VALUES ('$ip', '$username', '$codepays', '$webirc', '$websocket', NOW(), 1)"
	}
 
	set res [::mysql::sel $::mysqlink $query]
	::checkpays::service:deconnect
}



Pour faire une seule fermeture connexion, tu me conseilles de les retirer des deux procédures et de les mettre dans le else .

Exemple:

tcl
	} else {
 
		# Si on entre pas dans une condition blacklisté on envoie à la proc du monitoring
                ::checkpays::service:connect
		::checkpays::monitoring $nick $username $ip $vhost $codepays $reputation $sslco $webirc $websocket $realname $asn $asname
		::checkpays::CountIRC $ip $username $codepays $webirc $websocket
                ::checkpays::service:deconnect
 
	}



ou de réunir les deux proc en une seule ? Les réunir ça sera problématique si je veux les appeler séparement.

Et voici la structure de ma table compteur , qui est appeler dans la proc CountIRC : https://imgur.com/YjcEqOW
Répondre


Messages dans ce sujet
RE: Amélioration d'un script pour le rendre plus performant - par Amand - 30/09/2024, 19:45

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté