Mon 16 July 2007, alle 11:28 +0200, Manlio Perillo ha scritto: > allanon ha scritto: > >Sun 15 July 2007, alle 16:47 +0200, Eriol ha scritto: > >>On Friday 13 July 2007, allanon wrote: > >>>come potrei fare? > >>Importare dal modulo threading: > >> > >>from threading import Timer > >> > > > >ti ringrazio per la dritta, > >infatti ho altre due domande per te :) > > > >1) come diavolo fai a saperlo dato che nella pagine online di reference > >non c'e' scritto :p > > > >2) > > > >questa e' la parte incriminata del mio codice > > > >if __name__ == '__main__': > ># creo l'oggetto database > > db = MySQLdb.connect(host = HOST, > > user = USER, > > passwd = PASSWD, > > db=DATABASE > > ) > > c=db.cursor() # crea il cursore > > t = Timer(5.0, Repeated_Function(c)) > > t.start() > > > > > >lancio lo script, > >viene eseguita la Repeated_Function per 1 volta > >dopo 5 secondi ottengo questo errore > > > >Traceback (most recent call last): > > File "threading.py", line 442, in __bootstrap > > self.run() > > File "threading.py", line 607, in run > > self.function(*self.args, **self.kwargs) > >TypeError: 'NoneType' object is not callable > > > > > >la connessione al db dovrebbe essere sempre attiva giusto? > >e lo stesso dovrebbe valere per il cursore, > >non capisco cosa non funziona O_O > > > > L'errore ti è già stato segnalato. > Comunque io farei molta attenzione ad usare i thread. > > Innanzitutto tu crei un cursore nel thread principale e poi lo passi ad > un altro thread. > > pySQLite, ad esempio non permette questa operazione. > In molte altre librerie, inoltre, il cursore non è thread safe (ossia > avrai problemi se due thread accedono allo stesso cursore). > > Vedi cosa restituisce la variabile MySQLdb.threadsafety > (http://python.org/dev/peps/pep-0249/) > > Cosa fa, in dettaglio, Repeated_Function? > Cosa fa, invece, il thread principale? >
Repeated funcion e' un nome del cavolo che ho messo solo perche' avevo letto l'esempio secondo cui per usare il timer dovevo per forza usare una funzione, quindi ne ho usata una come contenitore, ne posso fare a meno, ne vorrei fare a meno..e' anche antiestetica sta cosa. cmq all'interno ci sono cavolatine + due funzioni con lo scopo di prendere dati dal db ed elaborarli se non dovessi usare sto timer, che cmq non riesco proprio a capire dalla pagina del reference (la niubbagine non si sciacqua), chiamerei le due funzioni direttamente da quella principale e via. > > Io passarei al thread secondario l'oggetto connessione, oppure la > connessione la creerei direttamente nel thread (se deve essere usata > solo qui). > > Un'ultima cosa: i nome delle funzioni non dovrebbero iniziale con una > lettara maiuscola: http://python.org/dev/peps/pep-0008/ > Ti ringrazio tantissimo, mi serviva proprio una cosa del genere. Tendenzialmente sono un tipo che vorrebbe essere ordinato, quando sa come fare le cose! > > Entrambi i PEP sono anche stati tradotti in italiano, ma al momento non > ci sono link diretti sul sito. > Grazie per le dritte e la pazienza, a te a alle altre persone che hanno risposto. Provero' altre soluzioni facendo tesoro dei vostri consigli. ciao -- .''`. |Utente Linux #370990 <--> jabber: [EMAIL PROTECTED] : :' : |No al TC-Palladium! http://www.no1984.org/ `. `'` |GnuPG ID Key:(0x)A07FF2DB <--> gpg --search-keys 0xA07FF2DB `- |Fingerprint 3D2F DCD4 6AB3 9C52 995A 969E D634 02FF A07F F2DB _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python