Il giorno 18 maggio 2014 07:14, Marco De Paoli <depao...@gmail.com> ha scritto: > > premetto che gli ho dato solo un occhiata e comunque mi manca un po' > contesto > (per dirne una, non so a cosa serve il semaphore...)
dovrebbe servire per evitare che girino contemporaneamente più di N task > > > Se ora faccio partire il tutto mi trovo con un output simile a questo: > > > > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 32 > > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 3 > > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 52 > > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 43 > > DEBUG 4460 Consumer 2014-05-16 20:00:20,345: Get task task 27 > > DEBUG 4552 task 52 2014-05-16 20:00:20,345: task 52 starting ... > > > > > io dichiaro una coda di dimensione 1. Mi aspetto che quando faccio > todoQ.put > > questo resti in attesa finché nella coda non si libera un posto invece > non > > succede cosi. > > > come lo verifichi che non succede così? > voglio dire: > potrebbe essere che i fetch avvengano in rapida successione per cui > effettivamente in ogni momento la coda è (effettivamente) lunga al più > 1? perché nel esempio ho impostato il numero max di task che possono girare sia 1 e il task ha uno sleep di un secondo. Inoltre i task 32 e 3 io non li vedo mai partire, neanche dopo qualche secondo. > > Inoltre dal log sembra che scarichi i task nel seguente ordine > > 32, 3, 52, 43, 27 e cosi via. Mi aspetto che il primo task sia 32, > invece è > > 52. > > uhm, chi è precisamente che stampa quelle righe di log? > potrebbe essere che il log non è nello stesso ordine del fetch? > > uso il modulo logging -- Balan Victor
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python