[pyar] Demonios y forks en Django

Juan Ignacio euribates en gmail.com
Jue Feb 28 05:43:10 ART 2013


¿Un demonio para unix/linux o para windows?


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

> El 27 de febrero de 2013 08:58, Ramiro Morales <cramm0 en gmail.com>escribió:
>
> Ramiro Morales
>>
>> On Feb 27, 2013 3:05 AM, "Tio Oscar" <tioscar en gmail.com> wrote:
>> >
>> > 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.
>>
>> No me queda claro si estas tratando de hacer todo esto en un ciclo
>> petición/rta. HTTP. Si es así, no te lo recomiendo porque tratar de crear y
>> manejar procesos desde el código que se ejecuta allí es una lotería
>> tenirndo en cuenta que el patrón en rl manejo devthreads/procesos es el
>> webserver y no tenemos control sobre el mismo.
>>
>> Creo que es una buena oportunidad para el ejercicio de los n ¿porqué? Por
>> ejemplo porqué envías lotes con una cantidad máxima de emails.
>>
>> Creo que parte de la solución podría estar en usar o congiar en un MTA (o
>> más bien un MSA) que desde hace 30 años tienen solucionado el tema de
>> manejar colas de correo. Le envías todos y él se encarga. Y si se reinicia
>> el hardware no los pierde. Y los envia cuanto antes. Y si no puede
>> reintenta. Muy gauchito.
>>
>> Sobre como hacerle llegar esos mails al MSA es probable que al existir el
>> mismo puedas enviar los mails dentro del ciclo req/rta. Sin incurrir en
>> demoras pero también podes usar sistemas de colas para esas tareas. Celery
>> EA la mas famose pero hay un puñado de opciones.
>>
>> >
>> > 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
>>
>>
>> _______________________________________________
>> 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
>>
>
> Gracias por las respuestas, pero en realidad el tema del pool no es el
> problema, lo que necesito saber es como hacer un demonio, y si hay algun
> problema de utilizar forks.
>
>
> --
> 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/20130228/a53e9480/attachment.html>


More information about the pyar mailing list