[pyar] Demonios y forks en Django

Tio Oscar tioscar en gmail.com
Mie Feb 27 03:04:30 ART 2013


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@ 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/20130227/6403e526/attachment.html>


More information about the pyar mailing list