[mac_prises] Améliorations de performances.

This commit is contained in:
Pierre-Elliott Bécue 2013-03-14 15:56:12 +01:00
parent c7f4fd6cc8
commit 594c6aeb69
2 changed files with 7 additions and 12 deletions

View file

@ -32,6 +32,7 @@ for club in clubs:
pass pass
conn = psycopg2.connect(user='crans', database='mac_prises') conn = psycopg2.connect(user='crans', database='mac_prises')
conn.set_session(autocommit = True)
cur = conn.cursor(cursor_factory = psycopg2.extras.DictCursor) cur = conn.cursor(cursor_factory = psycopg2.extras.DictCursor)
requete = "SELECT * FROM signales WHERE date >= timestamp 'now' - interval '1 day';" requete = "SELECT * FROM signales WHERE date >= timestamp 'now' - interval '1 day';"
@ -79,7 +80,7 @@ def genere_comptage(duree, groupe, associes):
continue continue
if entry['nb_'+associes+'s_distinctes'] >= mac_prise.suspect[duree][groupe]: if entry['nb_'+associes+'s_distinctes'] >= mac_prise.suspect[duree][groupe]:
Logs.append(u"Recherche par %s, entrée suspecte : %s -> %s \n" % (groupe, entry[groupe], entry[associes+'s'])) Logs.append(u"Recherche par %s, entrée suspecte : %s -> %s : %s distinctes sur %s dates distinctes\n" % (groupe, entry[groupe], entry[associes+'s'], entry['nb_'+associes+'s'], entry['nb_dates_distinctes']))
liste_associes = entry[associes+'s'].split(', ') liste_associes = entry[associes+'s'].split(', ')
# On calcule la "probabilité" qu'un truc ne soit pas clair concernant la chambre/mac # On calcule la "probabilité" qu'un truc ne soit pas clair concernant la chambre/mac

View file

@ -11,6 +11,7 @@ from config import mac_prise
from affich_tools import tableau from affich_tools import tableau
sys.path.append('/usr/scripts/lc_ldap') sys.path.append('/usr/scripts/lc_ldap')
import lc_ldap import lc_ldap
import collections
ldap = lc_ldap.lc_ldap_local() ldap = lc_ldap.lc_ldap_local()
@ -44,20 +45,13 @@ def reperage_mac_inconnue():
output = u"" output = u""
probleme = {} probleme = {}
requete = "SELECT date, chambre, mac FROM correspondance WHERE date >= timestamp 'now' - interval '24 hours' ORDER BY chambre ASC;" requete = "SELECT chambre, mac, COUNT(mac) as nb_min FROM correspondance WHERE date >= timestamp 'now' - interval '24 hours' GROUP BY chambre, mac ORDER BY chambre ASC;"
cur.execute(requete) cur.execute(requete)
fetched = cur.fetchall() fetched = cur.fetchall()
liste_parsee = {} liste_parsee = collections.defaultdict(dict)
for entry in fetched: for entry in fetched:
if liste_parsee.has_key(entry['chambre']): liste_parsee[entry['chambre']][entry['mac']] = int(entry['nb_min'])
if liste_parsee[entry['chambre']].has_key(entry['mac']):
liste_parsee[entry['chambre']][entry['mac']] += 1
else:
liste_parsee[entry['chambre']][entry['mac']] = 1
else:
liste_parsee[entry['chambre']] = {}
liste_parsee[entry['chambre']][entry['mac']] = 1
for chambre in liste_parsee.keys(): for chambre in liste_parsee.keys():
if chambre in chambres_ma + chambres_clubs: if chambre in chambres_ma + chambres_clubs: