Faire deux ensembles de hostnames (les hostnames valides et ceux qui ont raté leur épreuve du ping), qui seront mis à jour dans chaque thread.
Il y a des structures adaptées pour ça (pour éviter les conflits).
Ensuite, quand tous les thread ont fini, tu fais "UPDATE ping SET dateping=%s,state='1',ispingok='1',compteur=compteur+1 WHERE (netbiosname=%s) or (netbiosname=%s) or ..." avec tous les hostnames qui ont réussi, puis une seconde requête avec tous ceux qui ont raté. S'il y a trop de hostnames, tu peux découper pour faire du traitement par lots de 1000 hostnames.
Tu peux également faire plus de 5 threads (100 restent raisonnables).
# optimisations possibles
Posté par flan (site web personnel) . En réponse au message Ping multithread + bdd. Évalué à 3.
Faire deux ensembles de hostnames (les hostnames valides et ceux qui ont raté leur épreuve du ping), qui seront mis à jour dans chaque thread.
Il y a des structures adaptées pour ça (pour éviter les conflits).
Ensuite, quand tous les thread ont fini, tu fais "UPDATE ping SET dateping=%s,state='1',ispingok='1',compteur=compteur+1 WHERE (netbiosname=%s) or (netbiosname=%s) or ..." avec tous les hostnames qui ont réussi, puis une seconde requête avec tous ceux qui ont raté. S'il y a trop de hostnames, tu peux découper pour faire du traitement par lots de 1000 hostnames.
Tu peux également faire plus de 5 threads (100 restent raisonnables).