<div class="gmail_quote">Ciao,<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Non mi sembra la soluzione migliore usare i thread per fare questo.<br>
</blockquote><div>hai perfettamente ragione, ma non essendo esperto in questo genere di programmazione, era la soluzione migliore che mi è venuta in mente! :-) <br></div><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
La soluzione canonica a questo problema è avere un processo master, il<br>
quale a sua volta fa lo spawn di N sotto processi.<br>
<br>
Il processo master registra un handler per il segnale SIGCHLD, in modo<br>
che venga notificato se un processo figlio è morto e ne possa spawnare<br>
un altro.<br>
<br>
Per ricaricare la configurazione, non devi fare altro che:<br>
1) Fare lo spawn di N processi, i quali a loro volta leggono la nuova<br>
configurazione<br>
2) Se è andato tutto bene, killi gli N processi "vecchi".<br></blockquote><div>Non mi è chiara una cosa, probabilmente non riesco a inquadrare la soluzione che mi serve.<br>Approfitto della tua gentilezza e disponibilità subito! :-) <br>
La mia applicazione processa dei file, solitamente è una lista di file (arrivano o da un file di testo, o da un db). <br>lo script principale usa un thread pool per fare lo spawn dei processi e scodano la queue che incamera i dati.<br>
Ogni sottoprocesso prende come argomento da riga di comando il nome del file da trattare.<br>Se il sottoprocesso termina senza problemi allora il thread che l'aveva in carico fa lo spawn di un altro sottoprocesso, altrimenti il thread lo ammazza dopo 30 secondi se non ha completato.<br>
I thread li ho usati per avere una concorrenza vera e propria sulle operazioni sui files, cioè per avere un numero di processi contemporanei elevato. Attualmente il processo gira su una macchina solaris / sparc a 16 core e quindi faccio lo spawn di almeno 16 processi.<br>
Non mi è chiaro come fare lo spawn di più processi senza usare una tecnica del genere. <br>Uso un loop del tipo while True, con un contatore per avere il numero di processi attivi?<br>Grazie per qualunque consiglio!<br><br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dovresti trovare un esempio di come fare tutto questo in<br>
<a href="http://pypi.python.org/pypi/Spawning/0.8.10" target="_blank">http://pypi.python.org/pypi/Spawning/0.8.10</a><br>
</blockquote><div>ottimo lo guardo subito! <br></div><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ciao Manlio Perillo<br>
<div></div></blockquote><div>Grazie<br>Fabrizio <br></div></div><br>