[pyar] Limitando size del input Queue de multiprocessing.Pool

Alejandro Santos listas en alejolp.com
Sab Abr 5 19:52:56 ART 2014


2014-04-05 23:55 GMT+02:00 Andres Riancho <andres.riancho en gmail.com>:
>
> En mi caso lo que estoy viendo son muchos tuples con los args de
> tamaño pequeño. Mas que nada los args representan un HTTP request:
> URL, headers, post-data, etc.
>

Si tenes tareas que mandan tuples al Pool, y los workers las procesan
sin interactuar con el Pool (sin encolar nuevas tareas) no deberías
tener deadlock.

Pero si los workers envían tareas al Pool (ie, un web spider como lo
es w3af), al tener un límite en la Queue de espera, sí, podés tener un
deadlock. El caso patológico es cuando tenés un límite de 1 en la
Queue del Pool, que scrapea una web y vuelve a encolar en el Pool las
webs linkeadas.

Estoy (casi) seguro que, en general, si tenes un límite de X tareas en
la Queue del Pool, cada tarea no puede re-encolar más de (X-1) nuevas
tareas al Pool, de lo contrario llegás a un deadlock (pero hoy me
duele mucho la cabeza y una segunda opinion no me vendría mal).

-- 
Alejandro Santos


More information about the pyar mailing list