Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Ejecutar tareas automáticas con django-chronograph

Django-chronograph es una aplicación que permite programar la ejecución de tareas automáticas de manage.py utilizando cron. Permite especificar las tareas a realizar y el intervalo de tiempo en el que se deben repetir mediante el sitio de administración de Django. Esto es muy útil para automatizar tareas repetitivas de nuestro proyecto como pueden ser enviar un e-mail semanal automático a todos los usuarios ó eliminar diariamente cuentas de usuarios inactivos. Django-chronograph también almacena un listado de logs visible desde el sitio de administración que nos permite comprobar los resultados de las tareas ejecutadas.

Para instalar django-chronograph basta con seguir los siguientes pasos:

  1. Descarga python-dateutil si aún no lo tienes. Es necesario para django-chronograph.

  2. Descarga la última versión de django-chronograph del repositorio mediante svn:

    svn checkout http://django-chronograph.googlecode.com/svn/trunk/ django-chronograph-read-only
    
  3. Añade la aplicación chronograph al setting INSTALLED_APPS y la siguiente URL a tu configuración de URLs en urls.py:

    url(r'^admin/chronograph/job/(?P<pk>\d+)/run/$', 'chronograph.views.job_run', name="admin_chronograph_job_run")
    

    Después ejecuta el comando manage.py syncdb para que se creen las tablas necesarias en la base de datos.

  4. Añade la siguiente línea a tu crontab especificando la ruta en la que se encuentra el archivo manage.py de tu proyecto. Para editar las tareas cron utiliza el comando crontab -e

* * * * * python /path/a/tu/proyecto/manage.py cron

Después podrás gestionar tus tareas automáticas desde el sitio de administración de Django.

django-chronograph en el sitio de administración de Django

Publicado por Antonio Melé el Jueves 9 de Abril de 2009 Compártelo: Facebook: Twitter: | Categorías: admin, aplicaciones, pluggables

Entradas similares

Crear una imagen de nuestros modelos con django-command-extensions

Algo interesante que nos aporta django-command-extensions es poder crear una representación gráfica de nuestros modelos (o por decirlo de otro modo nuestro esquema de ...


Migración de esquemas con django-evolution

Las migraciones o evoluciones de esquema son las modificaciones que hacemos a modelos ya creados y que afectan a la base de datos. Cuando ...


 
Haystack 1.0 liberado

Hace un par de días se ha liberado la versión 1.0 final de Haystack. Haystack es probablemente la forma más sencilla de añadir ...


oEmbed y Django: incrusta contenidos de servicios web con django-oembed

oEmbed es un formato que permite usar una representación embebida de una URL en sitios web de terceros. La API de oEmbed permite a ...


 
 

2 comentarios:

El Martes 19 de Mayo de 2009 Federico Cáceres dijo:

Gracias por el link, justo estaba buscando algo así. Sin embargo tengo un problema con el Chronograph, me da un error de que el modelo Jobs ya está registrado, parece que lo está registrando dos veces?

La culpa parece tener la linea:
url(r'^admin/chronograph/job/(?P<pk>\d+)/run/$', 'chronograph.views.job_run', name="admin_chronograph_job_run")
Ya que ese view vuelve a invocar al módulo admin.py que vuelve a tratar de registrar el modelo Jobs...

Te ha tocado algún problema así? Yo estoy usando Django 1.0.2.

El Martes 19 de Mayo de 2009 Antonio Melé dijo:

La verdad es que yo no he tenido problema utilizando un checkout de la versión de desarrollo de Django.

Veo que ya has abierto una issue y que tienes una solución temporal http://code.google.com/p/django-chronograph/issues/detail?id=13 a ver qué dicen los desarrolladores sobre ello.

Escribe un comentario: