[pyar] Demonios y forks en Django

Tio Oscar tioscar en gmail.com
Jue Feb 28 13:26:30 ART 2013


El 28 de febrero de 2013 05:43, Juan Ignacio <euribates en gmail.com> escribió:

> ¿Un demonio para unix/linux o para windows?
>
>
Windows? se sigue usando eso?


>
> 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@ 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/
>
> _______________________________________________
> 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
>



-- 
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@ h>++
r+++(-) y+++>+++++
------END GEEK CODE BLOCK------
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130228/c5e82ec5/attachment.html>


More information about the pyar mailing list