[pyar] Demonios y forks en Django

Juan Ignacio euribates en gmail.com
Mie Feb 27 08:47:35 ART 2013


Yo estoy con un problema similar y estoy mirando temas de gestores de
colas, como RabbitMQ (1), aunque estoy mirando si puedo simplificar y
montarlo usando sólo  el esquema PUB/SUB de Redis (2). Lo bueno de montar
el sistema de colas es que permitiría, entre otras cosas, distribuir la
carga entre distintas maquinas, si te hiciera falta. Lo malo es que, claro,
implica añadir otra capa más :-)

(1) http://www.rabbitmq.com/
(2) http://redis.io/

2013/2/27 Tio Oscar <tioscar en gmail.com>

> Parece el titulo de un juego de roll, pero no.
>
> Tengo una aplicación en Django que al recibir una petición puede mandar
> muchos emails, para eso hice un pool, ese pool lo descargo con un comando
> al manage.py que envía hasta x cantidad de emails, y ese comando lo ejecuto
> atravez de un Cron cada 1 minuto.
>
> Ahora, los correos que se mandan para otras funciones (habilitación de
> emails, perdidas de contraseña, etc) pasan por este pool, lo que hace que
> pueda ser un poco tedioso para el usuario, 1 minuto de espera puede ser
> mucho para un usuario que quiere confirmar una cuenta de email.
>
> Ahora se me ocurren 2 cosas:
>
> 1- Un demonio que este permanentemente.
> 2- Un comando que se ejecute por 1 minuto enviando todo lo que puede en
> ese tiempo.
>
> Los pros y contras son varias, la segunda me salva de si se cae el
> proceso, se que se va a volver a levantar en menos de 1 minuto.
>
> Por otro lado (esto es otra aplicacion), tengo un sitio que necesita hacer
> unas consultas TODO el tiempo y hablamos de cantidades en millones, asi que
> aca si o si tengo que hacer un demonio, ahora esas consultas las podría
> hacer en paralelo, y como se que usar threads en python no es muy
> beneficioso (aparte que lo mejor seria utilizar todos los cores del
> servidor) pienzo hacerla con forks.
>
> Se que para esta segunda opción existen cosas como twisted pero me
> gustaría usar los modelos y los recursos que tengo ya en Django.
>
> Se que se puede forkear porque el propio manage.py lo hace cuando se
> ejecuta el runserver en modo prefork, pero no sé como tendría que encararlo
> correctamente, y si se puede hacer demonizable, mejor.
>
> Si alguno me puede dar un aventon se lo agreadecería :-)
>
> --
> Exos ~ Programador, hacker y filósofo
> web: http://blog.exodica.com.ar
> Linked'in: http://www.linkedin.com/in/ogexos
> Twitter: @exos, Indeti.ca: @exos
> Tels: [+54 11] 6385-EXOS (3967) - [+54 9 11] 6133-2442
>
> -----BEGIN GEEK CODE BLOCK-----
> Version: 3.1
> GCS/IT d-- s:++ a- C+++$ UBL+++$ P(-) L+++$ !E--- W+++$ !N !o K-? !w--- !O
> !M-- V? PS+++@ !PE Y+(++) PGP++ !t--- !5 X++ R(+) tv--? b- DI D-- G e en h>++ r+++(-) y+++>+++++
> ------END GEEK CODE BLOCK------
> _______________________________________________
> 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
>



-- 
Juan Ignacio Rodríguez de León
Móvil: 605 890514
E-Mail: euribates en gmail.com
http://www.metriz.com/
http://descon2.com/
http://www.elornitorrincoenmascarado.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130227/a5b8cd94/attachment.html>


More information about the pyar mailing list