2011-08-29 7 views
8

Tengo una serie de tareas de mantenimiento para una aplicación WSGI de python que son demasiado complejas para un crontab (los trabajos deben ejecutarse a frecuencias derivadas del tamaño de la cola de trabajos, administrar un grupo de conexiones a un grupo de instancias de EC2 , etc.)¿Cómo implementar un programa python basado en eventos de larga duración?

¿Cómo debo implementar un programa de python basado en eventos de larga duración? Nunca antes había necesitado esta funcionalidad, así que ni siquiera estoy seguro de qué googlear.

+1

http://twistedmatrix.com/trac/? – zengr

+0

@zengr, twisted y python-daemon son las dos primeras cosas que me vienen a la mente, pero quería ver si me faltaba algo en la biblioteca estándar antes de comprometerme con algo. Todavía soy un poco nuevo para Python. –

Respuesta

7

La mayoría de los sitios de python grandes y modernos están usando Celery para este tipo de trabajo. Es una cola de tareas distribuidas que también admite la programación de tareas.

Aunque probablemente sea un poco pesado para un sitio pequeño, crecerá con usted. Estoy buscando implementarlo yo mismo (sin Conejo) en breve.

Recientemente encontré otra opción para los usuarios de django, django-tasks que se centra en menos, más largos, trabajos de tipo de procesamiento por lotes. También hay django-ztask usando zeromq.

Adición: Acaba de encontrar gearman que tiene python bindings.

+0

Ah, aparentemente la consulta de google que estaba buscando era "cola de tareas asincrónicas de Python". :) –

Cuestiones relacionadas