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

Rispondere a