2009-05-01 2 views
9

Ho cercato dappertutto un buon script di timeout in grado di uccidere un thread se è attivo per più di X secondi, ma tutti gli esempi che ho visto hanno difetti che non si fermano sempre il filo. L'uso di thread.join (x) finisce per vanificare lo scopo di essere un thread.Python Timeout

L'unico esempio decente che ho trovato è Timeout on a function call e che non è senza i suoi difetti ..

Qualcuno sa di un modo migliore per fare questo?

+0

La gente di Python lo ha reso difficile apposta perché di solito è una cattiva idea uccidere qualcosa che potrebbe scrivere nella memoria condivisa. Potresti usare un processo invece di un thread? – Dave

+0

Beh, in questo caso è per uno script mod_wsgi, quindi è più una cosa di terminazione. Una volta che lo script viene eseguito oltre il limite di tempo, basta uccidere l'intero thread e uscire, quindi la memoria condivisa potenzialmente dannosa non è un grosso problema. – Ian

+0

Sei in esecuzione in modalità daemon o in modalità incorporata? – Dave

risposta