[pyar] Stdout multiplexing multiplataforma

Lucas Liendo mindmaster en gmail.com
Sab Ene 30 22:50:28 ART 2016


Otra aclaracion que me olvide de comentarte, en Linux y BSDs esto es facil
de resolver y Python tiene todas las herramientas para resolverlo. El
problema es Windows... Mi idea es utilizar alguna funcion de multiplexing
(el proceso padre va chequeando los fds cuando estan listos para leer,
procesa fd, etc) pero tiene que ser multiplataforma (multiplataforma en
este contexto = Windows) ;-)


2016-01-31 12:39 GMT+11:00 Lucas Liendo <mindmaster en gmail.com>:

> Te comento un poco mas la idea, el codigo simplemente no existe (o sea
> hasta no tener la seguridad de que voy a poder leer asincronicamente desde
> cada stdout no me conviene tirar una sola linea de codigo). La idea es esta
> : tengo un proceso padre que se encarga de disparar uno o mas procesos.
> Estos procesos son totalmente independientes del padre en el sentido de que
> una vez lanzados el proceso padre no espera por su finalizacion (ni
> siquiera le importa si finalizan o no). Estos procesos que corren de forma
> independiente tienen que tener la capacidad de comunicar sus salidas al
> proceso padre, sin embargo estos procesos nunca terminarian (a menos que el
> proceso padre decida terminarlos por la fuerza con un kill), simplemente
> cada tanto (dependiendo de ciertas circunstancias) imprimen a la salida
> alguna informacion en formato JSON. La idea es que ni bien alguno de estos
> procesos escriben a stdout el proceso padre pueda procesar este JSON y
> ademas el proceso padre nunca debe bloquearse a la espera de una salida en
> particular (ya que otros procesos pueden a la vez haber escrito a stdout).
> Como te comento previamente, cada proceso escribe de forma arbitraria un
> JSON cada un intervalo de tiempo indeterminado...
>
> 2016-01-31 11:09 GMT+11:00 Manuel Kaufmann <humitos en gmail.com>:
>
>> El 30/01/16 a las 18:39, Lucas Liendo escribió:
>>
>>> Estos procesos estan totalmente desacoplados de proceso padre.
>>>
>>
>> ¿Qué quiere decir exactamente esto?
>>
>> ¿Podés mostrar un poco el código de cómo estás llamando a esos procesos?
>>
>> Me gustaria saber si es posible capturar las salidas de cada uno de
>>> estos procesos utilizando alguna tecnica de multiplexing (ej select).
>>>
>>
>> ¿Porqué no podés usar simplemente el módulo "subprocess.run"?
>>
>> >>> import subprocess
>> >>> command_ls = subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
>> >>> command_ls.stdout
>> b'total 16\ndrwxr-xr-x  9 alarm alarm 4096 ene 18 18:37 apps\ndrwxr-xr-x
>> 2 alarm alarm 4096 ene 30 16:57 bin\ndrwxr-xr-x 11 alarm alarm 4096 ene 11
>> 23:23 fades\ndrwxr-xr-x  8 alarm alarm 4096 ene 11 21:34 pyfispot\n'
>>
>> Saludos,
>>
>> --
>>
>> Kaufmann Manuel
>> -- http://elblogdehumitos.com.ar/
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
>
>
> --
>
> Saludos,
> Lucas.
>
> Radar : http://radar-monitoring.readthedocs.org/en/latest/index.html
>



-- 

Saludos,
Lucas.

Radar : http://radar-monitoring.readthedocs.org/en/latest/index.html
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160131/c1e40cfa/attachment-0001.html>


Más información sobre la lista de distribución pyar