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?
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/
Entrambi i PEP sono anche stati tradotti in italiano, ma al momento non
ci sono link diretti sul sito.
Saluti Manlio Perillo
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python