[Py-MAD] POpen y process spawn
Miguel Angel
miguelangel.garcia at gmail.com
Wed May 5 08:23:30 CEST 2021
Volviendo un poco a python, habitualmente permitir a los hijos crear hijos
suele derivar en una arquitectura compleja y difícil de manejar. Es fácil
que se consuman todos los recursos de la máquina.
¿Has pensado en una arquitectura basada en productores-consumidores? De esa
manera tú controlas el número de procesos. Y para algo así, nada mejor que
Celery
<https://docs.celeryproject.org/en/stable/getting-started/introduction.html>
XD
Asi, los procesos que antes lanzaban procesos sólo tienen que publicar el
mensaje en la cola apropiada y algún consumidor lo gestionará en algún
momento. Y, como ventaja adicional, lo acabas de hacer distribuido. La
arquitectura más simple sería permitir que todos los workers gestionen
todos los tipos de mensajes.
Si te parece excesivo tener que instalar un RabbitMQ o un Redis (con el
beneficio adicional de la persistencia, si así lo configuras) puedes hacer
lo mismo pero con Queue <https://docs.python.org/3/library/queue.html>.
Mis 2 cents.
El mar, 4 may 2021 a las 17:39, Jesus Cea (<jcea at jcea.es>) escribió:
> On 29/4/21 9:14, Pablo Conesa wrote:
> > Podría haber diferencias aqui, sys.stdout se desvia a un fichero en
> > worker2, y puede que worker3 y worker4 lo "hereden"?
>
> Sí, de hecho es lo normal si los "hijos no hacen nada especial", heredan
> los descriptores del padre.
>
> > Estos children no serían "workers" serian comandos a programas que hace
> > prosamiento de imagenes y en estos caso si queremos pararlos. Es solo en
> > casos, excepcionales, donde lanzamos otros "workers", queremos "separar"
> > el subproceso. Digamos que tenemos tener 2 modos de lanzar subprocesos:
>
> > como child o separado.
>
> No es trivial matar los hijos de un proceso que ha muerto, sin
> colaboración de todas sus partes. En código mío yo puedo hacer cosas
> como mirar quien es mi padre, y si cambia, sé que mi padre ha muerto y
> me suicido. Pero eso tienes que programarlo tú.
>
> Una opción es el tema de sesiones que he comentado en un mensaje
> anterior. En linux, escribe "man 2 setsid".
>
> https://unix.stackexchange.com/a/240657/215258
>
> En todo caso aquí ya estamos hablando de linux y sistemas operativos.
> Nos hemos ido de "python".
>
> --
> Jesús Cea Avión _/_/ _/_/_/ _/_/_/
> jcea at jcea.es - https://www.jcea.es/ _/_/ _/_/ _/_/ _/_/ _/_/
> Twitter: @jcea _/_/ _/_/ _/_/_/_/_/
> jabber / xmpp:jcea at jabber.org _/_/ _/_/ _/_/ _/_/ _/_/
> "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/
> "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/
> "El amor es poner tu felicidad en la felicidad de otro" - Leibniz
>
> _______________________________________________
> Asociación Python España: http://www.es.python.org/
> Python Madrid: http://www.python-madrid.es/
> Madrid mailing list
> Madrid at lists.es.python.org
> https://lists.es.python.org/listinfo/madrid
>
--
Miguel Ángel García Martínez
http://www.magmax.org
Mail <miguelangel.garcia at gmail.com> | Twitter <http://twitter.com/#magmax9>
| LinkedIn <http://www.linkedin.com/in/miguelangelgarciamartinez> |
about.me <http://about.me/miguelangelgarcia>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.es.python.org/pipermail/madrid/attachments/20210505/0b78e8fb/attachment.htm>
More information about the Madrid
mailing list