[pyar] Presentación y consulta (Sockets -> envío de datos )

Roberto Alsina ralsina en netmanagers.com.ar
Lun Mayo 20 10:18:17 ART 2013


On 20/05/13 10:11, nicopixel wrote:
> Angel, gracias por los links! voy a leer sobre ese modelo.
>
> Roberto, lo que sucede es que los "colectores" guardan la informacion
> constantemente
> con shelv, sqlite o lo que sea y a la vez hay otro hilo leyendo esos
> datos uno a uno, enviandolos
> y eliminandolos. Así es mas o menos como pensé la cola, siempre van
> agarrando el dato
> mas antiguo, lo envia y lo elimina. Quizas deba ver el tema del
> bloqueo pero me cuesta pensarlo porque:
>
> a) El producer y el consumer son hilos diferentes. Si bloqueo el
> producer para que el consumer
> pueda borrar los datos ya procesados entonces... que hago con los
> datos que en ese momento
> recibe el producer y no puede persistirlos?
>
No entiendo exactamente lo que decís, pero creo que estoy cerca. Toda la
idea de serializar es que... bueno, serializás :-)


> b) Deberia generar una comunicación entre hilos
>

Totalmente. Lo que querés es tener colas entre los productores
("colectores") y el consumidor.
Entonces, los productores encolan los datos y se olvidan, con lo que
nunca se bloquean.
El consumidor los levanta de esas colas y los guarda en la base. Yo
haría que ese mismo hilo tome el más antiguo
lo envíe y lo elimine.

Al quedar todas las operaciones en un solo hilo, las realizás en orden,
los hilos que juntan datos nunca
bloquean, y listo. El *peor* de los casos es que si el acceso a la base
de datos es muy lento, se te van
a ir encolando muchos datos, pero tener concurrencia probablemente no te
solucionaría ese problema, tan sólo
haría que sea más difícil de ver :-)

Acá tenés un ejemplito:

http://smherwig.blogspot.com.ar/2012/09/producer-consumer-model-with-python.html
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130520/b17a1fa7/attachment.html>


More information about the pyar mailing list